diff --git a/bench/abc/optimized/mpmPre.c.ll b/bench/abc/optimized/mpmPre.c.ll index 3fc9bb8019c..308d0611265 100644 --- a/bench/abc/optimized/mpmPre.c.ll +++ b/bench/abc/optimized/mpmPre.c.ll @@ -608,7 +608,7 @@ define void @Ifd_ObjPrint_rec(ptr noundef %0, i32 noundef %1, ptr noundef %2, i3 %82 = lshr i32 %81, 29 %83 = and i32 %82, 3 %84 = zext nneg i32 %83 to i64 - %85 = getelementptr inbounds nuw [4 x i8], ptr getelementptr inbounds (i8, ptr @__const.Ifd_ObjPrint_rec.Symb, i64 4), i64 0, i64 %84 + %85 = getelementptr inbounds nuw [4 x i8], ptr getelementptr inbounds nuw (i8, ptr @__const.Ifd_ObjPrint_rec.Symb, i64 4), i64 0, i64 %84 %86 = load i8, ptr %85, align 1 %87 = sext i8 %86 to i32 br label %.sink.split diff --git a/bench/arrow/optimized/chunked_array.cc.ll b/bench/arrow/optimized/chunked_array.cc.ll index 69da68cd7f7..26248ab98d5 100644 --- a/bench/arrow/optimized/chunked_array.cc.ll +++ b/bench/arrow/optimized/chunked_array.cc.ll @@ -2726,7 +2726,7 @@ while.body.i.i: ; preds = %if.end15.i, %while. %n.08.i.i = phi i64 [ %n.1.i.i, %while.body.i.i ], [ %sub.ptr.div.i.i.i, %if.end15.i ] %shr.i.i = lshr i64 %n.08.i.i, 1 %add.i.i = add nuw nsw i64 %shr.i.i, %lo.09.i.i - %add.ptr.i.i.i = getelementptr inbounds i64, ptr %3, i64 %add.i.i + %add.ptr.i.i.i = getelementptr inbounds nuw i64, ptr %3, i64 %add.i.i %7 = load i64, ptr %add.ptr.i.i.i, align 8 %cmp4.not.i.i = icmp slt i64 %index, %7 %sub.i.i = sub nsw i64 %n.08.i.i, %shr.i.i @@ -2738,7 +2738,7 @@ while.body.i.i: ; preds = %if.end15.i, %while. _ZNK5arrow8internal13ChunkResolver6BisectEl.exit.i: ; preds = %while.body.i.i, %if.end15.i %lo.0.lcssa.i.i = phi i64 [ 0, %if.end15.i ], [ %lo.1.i.i, %while.body.i.i ] store atomic i64 %lo.0.lcssa.i.i, ptr %cached_chunk_.i seq_cst, align 8 - %add.ptr.i17.i = getelementptr inbounds i64, ptr %3, i64 %lo.0.lcssa.i.i + %add.ptr.i17.i = getelementptr inbounds nuw i64, ptr %3, i64 %lo.0.lcssa.i.i %8 = load i64, ptr %add.ptr.i17.i, align 8 %sub23.i = sub nsw i64 %index, %8 br label %_ZNK5arrow8internal13ChunkResolver7ResolveEl.exit diff --git a/bench/bdwgc/optimized/gc.c.ll b/bench/bdwgc/optimized/gc.c.ll index 85c29184e83..5d1bcb1e7ab 100644 --- a/bench/bdwgc/optimized/gc.c.ll +++ b/bench/bdwgc/optimized/gc.c.ll @@ -678,7 +678,7 @@ define ptr @GC_is_black_listed(ptr noundef %0, i64 noundef %1) local_unnamed_add br i1 %.not28, label %52, label %.loopexit 52: ; preds = %51 - %53 = getelementptr inbounds %struct.GC_hblk_s, ptr %0, i64 %.1 + %53 = getelementptr inbounds nuw %struct.GC_hblk_s, ptr %0, i64 %.1 %54 = ptrtoint ptr %53 to i64 %55 = lshr i64 %54, 12 %56 = and i64 %55, 262143 @@ -4074,7 +4074,7 @@ GC_is_black_listed.exit.thread.i: ; preds = %GC_is_black_listed. br i1 %.not28.i21.i, label %104, label %print_hblkfreelist_item.exit 104: ; preds = %103 - %105 = getelementptr inbounds %struct.GC_hblk_s, ptr %.011.i, i64 %.1.i20.i + %105 = getelementptr inbounds nuw %struct.GC_hblk_s, ptr %.011.i, i64 %.1.i20.i %106 = ptrtoint ptr %105 to i64 %107 = lshr i64 %106, 12 %108 = and i64 %107, 262143 @@ -10488,7 +10488,7 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC %105 = xor i64 %42, -1 store i64 %105, ptr %.050, align 8 %106 = load ptr, ptr %0, align 8 - %107 = getelementptr inbounds ptr, ptr %106, i64 %.051 + %107 = getelementptr inbounds nuw ptr, ptr %106, i64 %.051 %108 = load ptr, ptr %107, align 8 %109 = getelementptr inbounds nuw i8, ptr %.050, i64 8 store ptr %108, ptr %109, align 8 @@ -10497,7 +10497,7 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC 110: ; preds = %.loopexit %111 = load ptr, ptr %0, align 8 - %112 = getelementptr inbounds ptr, ptr %111, i64 %.051 + %112 = getelementptr inbounds nuw ptr, ptr %111, i64 %.051 store ptr %.050, ptr %112, align 8 %113 = getelementptr inbounds nuw i8, ptr %0, i64 8 %114 = load i64, ptr %113, align 8 @@ -10515,14 +10515,14 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC %123 = shl nuw i64 1, %122 %124 = atomicrmw volatile or ptr %121, i64 %123 monotonic, align 8 %125 = load ptr, ptr %0, align 8 - %126 = getelementptr inbounds ptr, ptr %125, i64 %.051 + %126 = getelementptr inbounds nuw ptr, ptr %125, i64 %.051 store ptr %.050, ptr %126, align 8 %127 = getelementptr inbounds nuw i8, ptr %0, i64 8 %128 = load i64, ptr %127, align 8 %129 = add i64 %128, 1 store i64 %129, ptr %127, align 8 %130 = load ptr, ptr %0, align 8 - %131 = getelementptr inbounds ptr, ptr %130, i64 %.051 + %131 = getelementptr inbounds nuw ptr, ptr %130, i64 %.051 %132 = ptrtoint ptr %131 to i64 %133 = lshr i64 %132, 12 %134 = lshr i64 %132, 18 @@ -18992,7 +18992,7 @@ define internal fastcc void @GC_exclude_static_roots_inner(ptr noundef %0, ptr n %.01218.i = phi i64 [ %.113.i, %.lr.ph.i ], [ 0, %5 ] %7 = add i64 %.01218.i, %.01119.i %8 = lshr i64 %7, 1 - %.idx15.i = shl nsw i64 %8, 4 + %.idx15.i = shl nuw nsw i64 %8, 4 %.offs16.i = or disjoint i64 %.idx15.i, 8 %9 = getelementptr inbounds nuw i8, ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 158208), i64 %.offs16.i %10 = load ptr, ptr %9, align 8 @@ -19060,9 +19060,9 @@ GC_next_exclusion.exit.thread: ; preds = %._crit_edge.i .lr.ph: ; preds = %29, %.lr.ph %.042 = phi i64 [ %35, %.lr.ph ], [ %3, %29 ] - %34 = getelementptr inbounds [512 x %struct.exclusion], ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 158208), i64 0, i64 %.042 + %34 = getelementptr inbounds nuw [512 x %struct.exclusion], ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 158208), i64 0, i64 %.042 %35 = add nsw i64 %.042, -1 - %36 = getelementptr inbounds [512 x %struct.exclusion], ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 158208), i64 0, i64 %35 + %36 = getelementptr inbounds nuw [512 x %struct.exclusion], ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 158208), i64 0, i64 %35 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %36, i64 16, i1 false) %37 = icmp ugt i64 %35, %32 br i1 %37, label %.lr.ph, label %GC_next_exclusion.exit.thread.thread, !llvm.loop !94 @@ -26558,7 +26558,7 @@ GC_get_maps_len.exit34.thread.i: ; preds = %GC_get_maps_len.exi .lr.ph.i36.i: ; preds = %.preheader72.i, %209 %.01316.i.i = phi i64 [ %210, %209 ], [ 0, %.preheader72.i ] - %203 = getelementptr inbounds i8, ptr %201, i64 %.01316.i.i + %203 = getelementptr inbounds nuw i8, ptr %201, i64 %.01316.i.i %204 = sub nuw i64 %202, %.01316.i.i %205 = tail call i64 @read(i32 noundef range(i32 0, -1) %194, ptr noundef %203, i64 noundef %204) #41 %206 = icmp slt i64 %205, 0 @@ -35427,7 +35427,7 @@ GC_set_mark_bit.exit.i.us: ; preds = %89, %GC_find_header %.01218.i.i.i = phi i64 [ %.113.i.i.i, %.lr.ph.i.i.i ], [ 0, %103 ] %105 = add i64 %.01218.i.i.i, %.01119.i.i.i %106 = lshr i64 %105, 1 - %.idx15.i.i.i = shl nsw i64 %106, 4 + %.idx15.i.i.i = shl nuw nsw i64 %106, 4 %.offs16.i.i.i = or disjoint i64 %.idx15.i.i.i, 8 %107 = getelementptr inbounds nuw i8, ptr getelementptr inbounds (i8, ptr @GC_arrays, i64 158208), i64 %.offs16.i.i.i %108 = load ptr, ptr %107, align 8 @@ -39156,7 +39156,7 @@ GC_find_header.exit: ; preds = %10 %38 = sub i64 0, %35 %39 = and i64 %37, %38 %40 = inttoptr i64 %39 to ptr - %41 = getelementptr inbounds i8, ptr %40, i64 %35 + %41 = getelementptr inbounds nuw i8, ptr %40, i64 %35 %42 = getelementptr inbounds i8, ptr %.01115, i64 %34 %43 = icmp ugt ptr %41, %42 %..i.i = select i1 %43, ptr null, ptr %40 @@ -41041,7 +41041,7 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC %101 = add i64 %100, %97 %102 = and i64 %101, %98 %103 = inttoptr i64 %102 to ptr - %104 = getelementptr inbounds i8, ptr %103, i64 %97 + %104 = getelementptr inbounds nuw i8, ptr %103, i64 %97 %105 = getelementptr inbounds i8, ptr %74, i64 %86 %106 = icmp ugt ptr %104, %105 %107 = icmp eq i64 %102, 0 @@ -41062,7 +41062,7 @@ GC_lock.exit: ; preds = %.preheader.i.i, %GC %116 = add i64 %115, %97 %117 = and i64 %116, %98 %118 = inttoptr i64 %117 to ptr - %119 = getelementptr inbounds i8, ptr %118, i64 %97 + %119 = getelementptr inbounds nuw i8, ptr %118, i64 %97 %120 = getelementptr inbounds i8, ptr %.083112.i, i64 %61 %121 = icmp ugt ptr %119, %120 %..i.i.i = select i1 %121, ptr null, ptr %118 @@ -41122,7 +41122,7 @@ GC_unmap.exit.i: ; preds = %135, %114 %151 = add i64 %150, %147 %152 = and i64 %151, %148 %153 = inttoptr i64 %152 to ptr - %154 = getelementptr inbounds i8, ptr %153, i64 %147 + %154 = getelementptr inbounds nuw i8, ptr %153, i64 %147 %155 = getelementptr inbounds i8, ptr %74, i64 %86 %156 = icmp ugt ptr %154, %155 %..i.i95.i = select i1 %156, ptr null, ptr %153 @@ -41164,7 +41164,7 @@ GC_unmap.exit97.i: ; preds = %170, %149 %175 = add i64 %174, %147 %176 = and i64 %175, %148 %177 = inttoptr i64 %176 to ptr - %178 = getelementptr inbounds i8, ptr %177, i64 %147 + %178 = getelementptr inbounds nuw i8, ptr %177, i64 %147 %179 = getelementptr inbounds i8, ptr %.083112.i, i64 %61 %180 = icmp ugt ptr %178, %179 %181 = icmp eq i64 %176, 0 @@ -41753,7 +41753,7 @@ define internal fastcc void @GC_unmap_gap(ptr noundef nonnull %0, i64 noundef %1 %9 = sub i64 0, %6 %10 = and i64 %8, %9 %11 = inttoptr i64 %10 to ptr - %12 = getelementptr inbounds i8, ptr %11, i64 %6 + %12 = getelementptr inbounds nuw i8, ptr %11, i64 %6 %13 = getelementptr i8, ptr %0, i64 %1 %14 = icmp ugt ptr %12, %13 %15 = ptrtoint ptr %13 to i64 @@ -41763,7 +41763,7 @@ define internal fastcc void @GC_unmap_gap(ptr noundef nonnull %0, i64 noundef %1 %19 = add i64 %7, %18 %20 = and i64 %19, %9 %21 = inttoptr i64 %20 to ptr - %22 = getelementptr inbounds i8, ptr %21, i64 %6 + %22 = getelementptr inbounds nuw i8, ptr %21, i64 %6 %23 = getelementptr inbounds i8, ptr %2, i64 %3 %24 = icmp ugt ptr %22, %23 %25 = icmp eq i64 %10, 0 @@ -42008,7 +42008,7 @@ define internal fastcc ptr @GC_allochblk_nth(i64 noundef %0, i32 noundef %1, i32 br i1 %.not28.i.i, label %120, label %next_hblk_fits_better.exit.thread184 120: ; preds = %119 - %121 = getelementptr inbounds %struct.GC_hblk_s, ptr %76, i64 %.1.i.i + %121 = getelementptr inbounds nuw %struct.GC_hblk_s, ptr %76, i64 %.1.i.i %122 = ptrtoint ptr %121 to i64 %123 = lshr i64 %122, 12 %124 = and i64 %123, 262143 @@ -42127,7 +42127,7 @@ GC_is_black_listed.exit.us.i: ; preds = %170, %166 br i1 %.not28.i.us.i, label %185, label %find_nonbl_hblk.exit 185: ; preds = %184 - %186 = getelementptr inbounds %struct.GC_hblk_s, ptr %143, i64 %.1.i.us.i + %186 = getelementptr inbounds nuw %struct.GC_hblk_s, ptr %143, i64 %.1.i.us.i %187 = ptrtoint ptr %186 to i64 %188 = lshr i64 %187, 12 %189 = and i64 %188, 262143 @@ -42190,7 +42190,7 @@ GC_is_black_listed.exit.us.i: ; preds = %170, %166 br i1 %.not28.i.i147, label %218, label %find_nonbl_hblk.exit 218: ; preds = %217 - %219 = getelementptr inbounds %struct.GC_hblk_s, ptr %194, i64 %.1.i.i146 + %219 = getelementptr inbounds nuw %struct.GC_hblk_s, ptr %194, i64 %.1.i.i146 br label %195 GC_is_black_listed.exit.i: ; preds = %211, %207 @@ -42445,7 +42445,7 @@ next_hblk_fits_better.exit.thread184: ; preds = %119, %36, %323, %22 %350 = sub i64 0, %347 %351 = and i64 %349, %350 %352 = inttoptr i64 %351 to ptr - %353 = getelementptr inbounds i8, ptr %352, i64 %347 + %353 = getelementptr inbounds nuw i8, ptr %352, i64 %347 %354 = getelementptr inbounds i8, ptr %.0109257, i64 %.pre315 %355 = icmp ugt ptr %353, %354 %356 = icmp eq i64 %351, 0 @@ -42651,7 +42651,7 @@ GC_split_block.exit: ; preds = %GC_hblk_fl_from_blo %472 = sub i64 0, %469 %473 = and i64 %471, %472 %474 = inttoptr i64 %473 to ptr - %475 = getelementptr inbounds i8, ptr %474, i64 %469 + %475 = getelementptr inbounds nuw i8, ptr %474, i64 %469 %476 = getelementptr inbounds i8, ptr %.1, i64 %467 %477 = icmp ugt ptr %475, %476 %478 = icmp eq i64 %473, 0 diff --git a/bench/brotli/optimized/compress_fragment.c.ll b/bench/brotli/optimized/compress_fragment.c.ll index d7ffb627a3e..1139884292b 100644 --- a/bench/brotli/optimized/compress_fragment.c.ll +++ b/bench/brotli/optimized/compress_fragment.c.ll @@ -467,10 +467,10 @@ if.then6.i.i: ; preds = %if.else.i150.i %narrow.i = add nuw nsw i32 %shl.i162.i, 42 %add9.i.i = zext nneg i32 %narrow.i to i64 %add10.i.i = add nuw nsw i64 %shr.i161.i, %add9.i.i - %arrayidx11.i.i = getelementptr inbounds i8, ptr %cmd_depth1.i.i, i64 %add10.i.i + %arrayidx11.i.i = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i, i64 %add10.i.i %40 = load i8, ptr %arrayidx11.i.i, align 1 %conv12.i.i = zext i8 %40 to i64 - %arrayidx13.i.i = getelementptr inbounds i16, ptr %cmd_bits2.i.i, i64 %add10.i.i + %arrayidx13.i.i = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i, i64 %add10.i.i %41 = load i16, ptr %arrayidx13.i.i, align 2 %conv14.i.i = zext i16 %41 to i64 %42 = load i64, ptr %storage_ix, align 8 @@ -498,7 +498,7 @@ if.then6.i.i: ; preds = %if.else.i150.i %46 = load i64, ptr %storage_ix, align 8 %add.i107.i.i = add i64 %46, %sh_prom.i.i store i64 %add.i107.i.i, ptr %storage_ix, align 8 - %arrayidx19.i.i = getelementptr inbounds i32, ptr %cmd_histo4.i.i, i64 %add10.i.i + %arrayidx19.i.i = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i, i64 %add10.i.i %47 = load i32, ptr %arrayidx19.i.i, align 4 %inc20.i.i = add i32 %47, 1 store i32 %inc20.i.i, ptr %arrayidx19.i.i, align 4 @@ -827,10 +827,10 @@ if.then8.i.i: ; preds = %if.else.i720.i %narrow994.i = add nuw nsw i32 %shl.i745.i, 4 %add.i746.i = zext nneg i32 %narrow994.i to i64 %add12.i.i = add nuw nsw i64 %shr.i744.i, %add.i746.i - %arrayidx13.i747.i = getelementptr inbounds i8, ptr %cmd_depth1.i.i, i64 %add12.i.i + %arrayidx13.i747.i = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i, i64 %add12.i.i %108 = load i8, ptr %arrayidx13.i747.i, align 1 %conv14.i748.i = zext i8 %108 to i64 - %arrayidx15.i.i = getelementptr inbounds i16, ptr %cmd_bits2.i.i, i64 %add12.i.i + %arrayidx15.i.i = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i, i64 %add12.i.i %109 = load i16, ptr %arrayidx15.i.i, align 2 %conv16.i.i = zext i16 %109 to i64 %110 = load i64, ptr %storage_ix, align 8 @@ -858,7 +858,7 @@ if.then8.i.i: ; preds = %if.else.i720.i %114 = load i64, ptr %storage_ix, align 8 %add.i208.i.i = add i64 %114, %sh_prom.i743.i store i64 %add.i208.i.i, ptr %storage_ix, align 8 - %arrayidx21.i749.i = getelementptr inbounds i32, ptr %cmd_histo4.i.i, i64 %add12.i.i + %arrayidx21.i749.i = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i, i64 %add12.i.i %115 = load i32, ptr %arrayidx21.i749.i, align 4 %inc22.i.i = add i32 %115, 1 store i32 %inc22.i.i, ptr %arrayidx21.i749.i, align 4 @@ -1195,10 +1195,10 @@ if.end197.i.i: ; preds = %FindMatchLengthWith if.then.i934.i: ; preds = %if.end197.i.i %add.i935.i = add nsw i64 %retval.i.0.i, 19 - %arrayidx.i936.i = getelementptr inbounds i8, ptr %cmd_depth1.i.i, i64 %add.i935.i + %arrayidx.i936.i = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i, i64 %add.i935.i %167 = load i8, ptr %arrayidx.i936.i, align 1 %conv.i937.i = zext i8 %167 to i64 - %arrayidx2.i939.i = getelementptr inbounds i16, ptr %cmd_bits2.i.i, i64 %add.i935.i + %arrayidx2.i939.i = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i, i64 %add.i935.i %168 = load i16, ptr %arrayidx2.i939.i, align 2 %conv3.i940.i = zext i16 %168 to i64 %169 = load i64, ptr %storage_ix, align 8 @@ -1213,7 +1213,7 @@ if.then.i934.i: ; preds = %if.end197.i.i %171 = load i64, ptr %storage_ix, align 8 %add.i135.i.i = add i64 %171, %conv.i937.i store i64 %add.i135.i.i, ptr %storage_ix, align 8 - %arrayidx5.i942.i = getelementptr inbounds i32, ptr %cmd_histo4.i.i, i64 %add.i935.i + %arrayidx5.i942.i = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i, i64 %add.i935.i %172 = load i32, ptr %arrayidx5.i942.i, align 4 %inc.i943.i = add i32 %172, 1 store i32 %inc.i943.i, ptr %arrayidx5.i942.i, align 4 @@ -1234,10 +1234,10 @@ if.then8.i916.i: ; preds = %if.else.i889.i %narrow995.i = add nuw nsw i32 %shl.i922.i, 20 %add11.i.i = zext nneg i32 %narrow995.i to i64 %add12.i923.i = add nuw nsw i64 %shr.i921.i, %add11.i.i - %arrayidx13.i924.i = getelementptr inbounds i8, ptr %cmd_depth1.i.i, i64 %add12.i923.i + %arrayidx13.i924.i = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i, i64 %add12.i923.i %174 = load i8, ptr %arrayidx13.i924.i, align 1 %conv14.i925.i = zext i8 %174 to i64 - %arrayidx15.i926.i = getelementptr inbounds i16, ptr %cmd_bits2.i.i, i64 %add12.i923.i + %arrayidx15.i926.i = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i, i64 %add12.i923.i %175 = load i16, ptr %arrayidx15.i926.i, align 2 %conv16.i927.i = zext i16 %175 to i64 %176 = load i64, ptr %storage_ix, align 8 @@ -1265,7 +1265,7 @@ if.then8.i916.i: ; preds = %if.else.i889.i %180 = load i64, ptr %storage_ix, align 8 %add.i109.i.i = add i64 %180, %sh_prom.i920.i store i64 %add.i109.i.i, ptr %storage_ix, align 8 - %arrayidx21.i932.i = getelementptr inbounds i32, ptr %cmd_histo4.i.i, i64 %add12.i923.i + %arrayidx21.i932.i = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i, i64 %add12.i923.i %181 = load i32, ptr %arrayidx21.i932.i, align 4 %inc22.i933.i = add i32 %181, 1 store i32 %inc22.i933.i, ptr %arrayidx21.i932.i, align 4 @@ -1628,10 +1628,10 @@ if.then6.i299.i: ; preds = %if.else.i241.i %narrow996.i = add nuw nsw i32 %shl.i306.i, 42 %add9.i308.i = zext nneg i32 %narrow996.i to i64 %add10.i309.i = add nuw nsw i64 %shr.i305.i, %add9.i308.i - %arrayidx11.i310.i = getelementptr inbounds i8, ptr %cmd_depth1.i.i, i64 %add10.i309.i + %arrayidx11.i310.i = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i, i64 %add10.i309.i %230 = load i8, ptr %arrayidx11.i310.i, align 1 %conv12.i311.i = zext i8 %230 to i64 - %arrayidx13.i312.i = getelementptr inbounds i16, ptr %cmd_bits2.i.i, i64 %add10.i309.i + %arrayidx13.i312.i = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i, i64 %add10.i309.i %231 = load i16, ptr %arrayidx13.i312.i, align 2 %conv14.i313.i = zext i16 %231 to i64 %232 = load i64, ptr %storage_ix, align 8 @@ -1659,7 +1659,7 @@ if.then6.i299.i: ; preds = %if.else.i241.i %236 = load i64, ptr %storage_ix, align 8 %add.i107.i331.i = add i64 %236, %sh_prom.i304.i store i64 %add.i107.i331.i, ptr %storage_ix, align 8 - %arrayidx19.i332.i = getelementptr inbounds i32, ptr %cmd_histo4.i.i, i64 %add10.i309.i + %arrayidx19.i332.i = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i, i64 %add10.i309.i %237 = load i32, ptr %arrayidx19.i332.i, align 4 %inc20.i333.i = add i32 %237, 1 store i32 %inc20.i333.i, ptr %arrayidx19.i332.i, align 4 @@ -2471,10 +2471,10 @@ if.then6.i.i1189: ; preds = %if.else.i150.i1137 %narrow.i1196 = add nuw nsw i32 %shl.i162.i1195, 42 %add9.i.i1197 = zext nneg i32 %narrow.i1196 to i64 %add10.i.i1198 = add nuw nsw i64 %shr.i161.i1194, %add9.i.i1197 - %arrayidx11.i.i1199 = getelementptr inbounds i8, ptr %cmd_depth1.i.i61, i64 %add10.i.i1198 + %arrayidx11.i.i1199 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i61, i64 %add10.i.i1198 %341 = load i8, ptr %arrayidx11.i.i1199, align 1 %conv12.i.i1200 = zext i8 %341 to i64 - %arrayidx13.i.i1201 = getelementptr inbounds i16, ptr %cmd_bits2.i.i62, i64 %add10.i.i1198 + %arrayidx13.i.i1201 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i62, i64 %add10.i.i1198 %342 = load i16, ptr %arrayidx13.i.i1201, align 2 %conv14.i.i1202 = zext i16 %342 to i64 %343 = load i64, ptr %storage_ix, align 8 @@ -2502,7 +2502,7 @@ if.then6.i.i1189: ; preds = %if.else.i150.i1137 %347 = load i64, ptr %storage_ix, align 8 %add.i107.i.i1218 = add i64 %347, %sh_prom.i.i1193 store i64 %add.i107.i.i1218, ptr %storage_ix, align 8 - %arrayidx19.i.i1219 = getelementptr inbounds i32, ptr %cmd_histo4.i.i63, i64 %add10.i.i1198 + %arrayidx19.i.i1219 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i63, i64 %add10.i.i1198 %348 = load i32, ptr %arrayidx19.i.i1219, align 4 %inc20.i.i1220 = add i32 %348, 1 store i32 %inc20.i.i1220, ptr %arrayidx19.i.i1219, align 4 @@ -2831,10 +2831,10 @@ if.then8.i.i1062: ; preds = %if.else.i720.i692 %narrow994.i1069 = add nuw nsw i32 %shl.i745.i1068, 4 %add.i746.i1070 = zext nneg i32 %narrow994.i1069 to i64 %add12.i.i1071 = add nuw nsw i64 %shr.i744.i1067, %add.i746.i1070 - %arrayidx13.i747.i1072 = getelementptr inbounds i8, ptr %cmd_depth1.i.i61, i64 %add12.i.i1071 + %arrayidx13.i747.i1072 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i61, i64 %add12.i.i1071 %409 = load i8, ptr %arrayidx13.i747.i1072, align 1 %conv14.i748.i1073 = zext i8 %409 to i64 - %arrayidx15.i.i1074 = getelementptr inbounds i16, ptr %cmd_bits2.i.i62, i64 %add12.i.i1071 + %arrayidx15.i.i1074 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i62, i64 %add12.i.i1071 %410 = load i16, ptr %arrayidx15.i.i1074, align 2 %conv16.i.i1075 = zext i16 %410 to i64 %411 = load i64, ptr %storage_ix, align 8 @@ -2862,7 +2862,7 @@ if.then8.i.i1062: ; preds = %if.else.i720.i692 %415 = load i64, ptr %storage_ix, align 8 %add.i208.i.i1091 = add i64 %415, %sh_prom.i743.i1066 store i64 %add.i208.i.i1091, ptr %storage_ix, align 8 - %arrayidx21.i749.i1092 = getelementptr inbounds i32, ptr %cmd_histo4.i.i63, i64 %add12.i.i1071 + %arrayidx21.i749.i1092 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i63, i64 %add12.i.i1071 %416 = load i32, ptr %arrayidx21.i749.i1092, align 4 %inc22.i.i1093 = add i32 %416, 1 store i32 %inc22.i.i1093, ptr %arrayidx21.i749.i1092, align 4 @@ -3199,10 +3199,10 @@ if.end197.i.i796: ; preds = %FindMatchLengthWith if.then.i934.i949: ; preds = %if.end197.i.i796 %add.i935.i950 = add nsw i64 %retval.i.0.i791, 19 - %arrayidx.i936.i951 = getelementptr inbounds i8, ptr %cmd_depth1.i.i61, i64 %add.i935.i950 + %arrayidx.i936.i951 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i61, i64 %add.i935.i950 %468 = load i8, ptr %arrayidx.i936.i951, align 1 %conv.i937.i952 = zext i8 %468 to i64 - %arrayidx2.i939.i953 = getelementptr inbounds i16, ptr %cmd_bits2.i.i62, i64 %add.i935.i950 + %arrayidx2.i939.i953 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i62, i64 %add.i935.i950 %469 = load i16, ptr %arrayidx2.i939.i953, align 2 %conv3.i940.i954 = zext i16 %469 to i64 %470 = load i64, ptr %storage_ix, align 8 @@ -3217,7 +3217,7 @@ if.then.i934.i949: ; preds = %if.end197.i.i796 %472 = load i64, ptr %storage_ix, align 8 %add.i135.i.i961 = add i64 %472, %conv.i937.i952 store i64 %add.i135.i.i961, ptr %storage_ix, align 8 - %arrayidx5.i942.i962 = getelementptr inbounds i32, ptr %cmd_histo4.i.i63, i64 %add.i935.i950 + %arrayidx5.i942.i962 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i63, i64 %add.i935.i950 %473 = load i32, ptr %arrayidx5.i942.i962, align 4 %inc.i943.i963 = add i32 %473, 1 store i32 %inc.i943.i963, ptr %arrayidx5.i942.i962, align 4 @@ -3238,10 +3238,10 @@ if.then8.i916.i917: ; preds = %if.else.i889.i800 %narrow995.i924 = add nuw nsw i32 %shl.i922.i923, 20 %add11.i.i925 = zext nneg i32 %narrow995.i924 to i64 %add12.i923.i926 = add nuw nsw i64 %shr.i921.i922, %add11.i.i925 - %arrayidx13.i924.i927 = getelementptr inbounds i8, ptr %cmd_depth1.i.i61, i64 %add12.i923.i926 + %arrayidx13.i924.i927 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i61, i64 %add12.i923.i926 %475 = load i8, ptr %arrayidx13.i924.i927, align 1 %conv14.i925.i928 = zext i8 %475 to i64 - %arrayidx15.i926.i929 = getelementptr inbounds i16, ptr %cmd_bits2.i.i62, i64 %add12.i923.i926 + %arrayidx15.i926.i929 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i62, i64 %add12.i923.i926 %476 = load i16, ptr %arrayidx15.i926.i929, align 2 %conv16.i927.i930 = zext i16 %476 to i64 %477 = load i64, ptr %storage_ix, align 8 @@ -3269,7 +3269,7 @@ if.then8.i916.i917: ; preds = %if.else.i889.i800 %481 = load i64, ptr %storage_ix, align 8 %add.i109.i.i946 = add i64 %481, %sh_prom.i920.i921 store i64 %add.i109.i.i946, ptr %storage_ix, align 8 - %arrayidx21.i932.i947 = getelementptr inbounds i32, ptr %cmd_histo4.i.i63, i64 %add12.i923.i926 + %arrayidx21.i932.i947 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i63, i64 %add12.i923.i926 %482 = load i32, ptr %arrayidx21.i932.i947, align 4 %inc22.i933.i948 = add i32 %482, 1 store i32 %inc22.i933.i948, ptr %arrayidx21.i932.i947, align 4 @@ -3632,10 +3632,10 @@ if.then6.i299.i385: ; preds = %if.else.i241.i312 %narrow996.i392 = add nuw nsw i32 %shl.i306.i391, 42 %add9.i308.i393 = zext nneg i32 %narrow996.i392 to i64 %add10.i309.i394 = add nuw nsw i64 %shr.i305.i390, %add9.i308.i393 - %arrayidx11.i310.i395 = getelementptr inbounds i8, ptr %cmd_depth1.i.i61, i64 %add10.i309.i394 + %arrayidx11.i310.i395 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i61, i64 %add10.i309.i394 %531 = load i8, ptr %arrayidx11.i310.i395, align 1 %conv12.i311.i396 = zext i8 %531 to i64 - %arrayidx13.i312.i397 = getelementptr inbounds i16, ptr %cmd_bits2.i.i62, i64 %add10.i309.i394 + %arrayidx13.i312.i397 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i62, i64 %add10.i309.i394 %532 = load i16, ptr %arrayidx13.i312.i397, align 2 %conv14.i313.i398 = zext i16 %532 to i64 %533 = load i64, ptr %storage_ix, align 8 @@ -3663,7 +3663,7 @@ if.then6.i299.i385: ; preds = %if.else.i241.i312 %537 = load i64, ptr %storage_ix, align 8 %add.i107.i331.i414 = add i64 %537, %sh_prom.i304.i389 store i64 %add.i107.i331.i414, ptr %storage_ix, align 8 - %arrayidx19.i332.i415 = getelementptr inbounds i32, ptr %cmd_histo4.i.i63, i64 %add10.i309.i394 + %arrayidx19.i332.i415 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i63, i64 %add10.i309.i394 %538 = load i32, ptr %arrayidx19.i332.i415, align 4 %inc20.i333.i416 = add i32 %538, 1 store i32 %inc20.i333.i416, ptr %arrayidx19.i332.i415, align 4 @@ -4475,10 +4475,10 @@ if.then6.i.i2465: ; preds = %if.else.i150.i2413 %narrow.i2472 = add nuw nsw i32 %shl.i162.i2471, 42 %add9.i.i2473 = zext nneg i32 %narrow.i2472 to i64 %add10.i.i2474 = add nuw nsw i64 %shr.i161.i2470, %add9.i.i2473 - %arrayidx11.i.i2475 = getelementptr inbounds i8, ptr %cmd_depth1.i.i1337, i64 %add10.i.i2474 + %arrayidx11.i.i2475 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i1337, i64 %add10.i.i2474 %642 = load i8, ptr %arrayidx11.i.i2475, align 1 %conv12.i.i2476 = zext i8 %642 to i64 - %arrayidx13.i.i2477 = getelementptr inbounds i16, ptr %cmd_bits2.i.i1338, i64 %add10.i.i2474 + %arrayidx13.i.i2477 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i1338, i64 %add10.i.i2474 %643 = load i16, ptr %arrayidx13.i.i2477, align 2 %conv14.i.i2478 = zext i16 %643 to i64 %644 = load i64, ptr %storage_ix, align 8 @@ -4506,7 +4506,7 @@ if.then6.i.i2465: ; preds = %if.else.i150.i2413 %648 = load i64, ptr %storage_ix, align 8 %add.i107.i.i2494 = add i64 %648, %sh_prom.i.i2469 store i64 %add.i107.i.i2494, ptr %storage_ix, align 8 - %arrayidx19.i.i2495 = getelementptr inbounds i32, ptr %cmd_histo4.i.i1339, i64 %add10.i.i2474 + %arrayidx19.i.i2495 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i1339, i64 %add10.i.i2474 %649 = load i32, ptr %arrayidx19.i.i2495, align 4 %inc20.i.i2496 = add i32 %649, 1 store i32 %inc20.i.i2496, ptr %arrayidx19.i.i2495, align 4 @@ -4835,10 +4835,10 @@ if.then8.i.i2338: ; preds = %if.else.i720.i1968 %narrow994.i2345 = add nuw nsw i32 %shl.i745.i2344, 4 %add.i746.i2346 = zext nneg i32 %narrow994.i2345 to i64 %add12.i.i2347 = add nuw nsw i64 %shr.i744.i2343, %add.i746.i2346 - %arrayidx13.i747.i2348 = getelementptr inbounds i8, ptr %cmd_depth1.i.i1337, i64 %add12.i.i2347 + %arrayidx13.i747.i2348 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i1337, i64 %add12.i.i2347 %710 = load i8, ptr %arrayidx13.i747.i2348, align 1 %conv14.i748.i2349 = zext i8 %710 to i64 - %arrayidx15.i.i2350 = getelementptr inbounds i16, ptr %cmd_bits2.i.i1338, i64 %add12.i.i2347 + %arrayidx15.i.i2350 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i1338, i64 %add12.i.i2347 %711 = load i16, ptr %arrayidx15.i.i2350, align 2 %conv16.i.i2351 = zext i16 %711 to i64 %712 = load i64, ptr %storage_ix, align 8 @@ -4866,7 +4866,7 @@ if.then8.i.i2338: ; preds = %if.else.i720.i1968 %716 = load i64, ptr %storage_ix, align 8 %add.i208.i.i2367 = add i64 %716, %sh_prom.i743.i2342 store i64 %add.i208.i.i2367, ptr %storage_ix, align 8 - %arrayidx21.i749.i2368 = getelementptr inbounds i32, ptr %cmd_histo4.i.i1339, i64 %add12.i.i2347 + %arrayidx21.i749.i2368 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i1339, i64 %add12.i.i2347 %717 = load i32, ptr %arrayidx21.i749.i2368, align 4 %inc22.i.i2369 = add i32 %717, 1 store i32 %inc22.i.i2369, ptr %arrayidx21.i749.i2368, align 4 @@ -5203,10 +5203,10 @@ if.end197.i.i2072: ; preds = %FindMatchLengthWith if.then.i934.i2225: ; preds = %if.end197.i.i2072 %add.i935.i2226 = add nsw i64 %retval.i.0.i2067, 19 - %arrayidx.i936.i2227 = getelementptr inbounds i8, ptr %cmd_depth1.i.i1337, i64 %add.i935.i2226 + %arrayidx.i936.i2227 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i1337, i64 %add.i935.i2226 %769 = load i8, ptr %arrayidx.i936.i2227, align 1 %conv.i937.i2228 = zext i8 %769 to i64 - %arrayidx2.i939.i2229 = getelementptr inbounds i16, ptr %cmd_bits2.i.i1338, i64 %add.i935.i2226 + %arrayidx2.i939.i2229 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i1338, i64 %add.i935.i2226 %770 = load i16, ptr %arrayidx2.i939.i2229, align 2 %conv3.i940.i2230 = zext i16 %770 to i64 %771 = load i64, ptr %storage_ix, align 8 @@ -5221,7 +5221,7 @@ if.then.i934.i2225: ; preds = %if.end197.i.i2072 %773 = load i64, ptr %storage_ix, align 8 %add.i135.i.i2237 = add i64 %773, %conv.i937.i2228 store i64 %add.i135.i.i2237, ptr %storage_ix, align 8 - %arrayidx5.i942.i2238 = getelementptr inbounds i32, ptr %cmd_histo4.i.i1339, i64 %add.i935.i2226 + %arrayidx5.i942.i2238 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i1339, i64 %add.i935.i2226 %774 = load i32, ptr %arrayidx5.i942.i2238, align 4 %inc.i943.i2239 = add i32 %774, 1 store i32 %inc.i943.i2239, ptr %arrayidx5.i942.i2238, align 4 @@ -5242,10 +5242,10 @@ if.then8.i916.i2193: ; preds = %if.else.i889.i2076 %narrow995.i2200 = add nuw nsw i32 %shl.i922.i2199, 20 %add11.i.i2201 = zext nneg i32 %narrow995.i2200 to i64 %add12.i923.i2202 = add nuw nsw i64 %shr.i921.i2198, %add11.i.i2201 - %arrayidx13.i924.i2203 = getelementptr inbounds i8, ptr %cmd_depth1.i.i1337, i64 %add12.i923.i2202 + %arrayidx13.i924.i2203 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i1337, i64 %add12.i923.i2202 %776 = load i8, ptr %arrayidx13.i924.i2203, align 1 %conv14.i925.i2204 = zext i8 %776 to i64 - %arrayidx15.i926.i2205 = getelementptr inbounds i16, ptr %cmd_bits2.i.i1338, i64 %add12.i923.i2202 + %arrayidx15.i926.i2205 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i1338, i64 %add12.i923.i2202 %777 = load i16, ptr %arrayidx15.i926.i2205, align 2 %conv16.i927.i2206 = zext i16 %777 to i64 %778 = load i64, ptr %storage_ix, align 8 @@ -5273,7 +5273,7 @@ if.then8.i916.i2193: ; preds = %if.else.i889.i2076 %782 = load i64, ptr %storage_ix, align 8 %add.i109.i.i2222 = add i64 %782, %sh_prom.i920.i2197 store i64 %add.i109.i.i2222, ptr %storage_ix, align 8 - %arrayidx21.i932.i2223 = getelementptr inbounds i32, ptr %cmd_histo4.i.i1339, i64 %add12.i923.i2202 + %arrayidx21.i932.i2223 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i1339, i64 %add12.i923.i2202 %783 = load i32, ptr %arrayidx21.i932.i2223, align 4 %inc22.i933.i2224 = add i32 %783, 1 store i32 %inc22.i933.i2224, ptr %arrayidx21.i932.i2223, align 4 @@ -5636,10 +5636,10 @@ if.then6.i299.i1661: ; preds = %if.else.i241.i1588 %narrow996.i1668 = add nuw nsw i32 %shl.i306.i1667, 42 %add9.i308.i1669 = zext nneg i32 %narrow996.i1668 to i64 %add10.i309.i1670 = add nuw nsw i64 %shr.i305.i1666, %add9.i308.i1669 - %arrayidx11.i310.i1671 = getelementptr inbounds i8, ptr %cmd_depth1.i.i1337, i64 %add10.i309.i1670 + %arrayidx11.i310.i1671 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i1337, i64 %add10.i309.i1670 %832 = load i8, ptr %arrayidx11.i310.i1671, align 1 %conv12.i311.i1672 = zext i8 %832 to i64 - %arrayidx13.i312.i1673 = getelementptr inbounds i16, ptr %cmd_bits2.i.i1338, i64 %add10.i309.i1670 + %arrayidx13.i312.i1673 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i1338, i64 %add10.i309.i1670 %833 = load i16, ptr %arrayidx13.i312.i1673, align 2 %conv14.i313.i1674 = zext i16 %833 to i64 %834 = load i64, ptr %storage_ix, align 8 @@ -5667,7 +5667,7 @@ if.then6.i299.i1661: ; preds = %if.else.i241.i1588 %838 = load i64, ptr %storage_ix, align 8 %add.i107.i331.i1690 = add i64 %838, %sh_prom.i304.i1665 store i64 %add.i107.i331.i1690, ptr %storage_ix, align 8 - %arrayidx19.i332.i1691 = getelementptr inbounds i32, ptr %cmd_histo4.i.i1339, i64 %add10.i309.i1670 + %arrayidx19.i332.i1691 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i1339, i64 %add10.i309.i1670 %839 = load i32, ptr %arrayidx19.i332.i1691, align 4 %inc20.i333.i1692 = add i32 %839, 1 store i32 %inc20.i333.i1692, ptr %arrayidx19.i332.i1691, align 4 @@ -6479,10 +6479,10 @@ if.then6.i.i3741: ; preds = %if.else.i150.i3689 %narrow.i3748 = add nuw nsw i32 %shl.i162.i3747, 42 %add9.i.i3749 = zext nneg i32 %narrow.i3748 to i64 %add10.i.i3750 = add nuw nsw i64 %shr.i161.i3746, %add9.i.i3749 - %arrayidx11.i.i3751 = getelementptr inbounds i8, ptr %cmd_depth1.i.i2613, i64 %add10.i.i3750 + %arrayidx11.i.i3751 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i2613, i64 %add10.i.i3750 %943 = load i8, ptr %arrayidx11.i.i3751, align 1 %conv12.i.i3752 = zext i8 %943 to i64 - %arrayidx13.i.i3753 = getelementptr inbounds i16, ptr %cmd_bits2.i.i2614, i64 %add10.i.i3750 + %arrayidx13.i.i3753 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i2614, i64 %add10.i.i3750 %944 = load i16, ptr %arrayidx13.i.i3753, align 2 %conv14.i.i3754 = zext i16 %944 to i64 %945 = load i64, ptr %storage_ix, align 8 @@ -6510,7 +6510,7 @@ if.then6.i.i3741: ; preds = %if.else.i150.i3689 %949 = load i64, ptr %storage_ix, align 8 %add.i107.i.i3770 = add i64 %949, %sh_prom.i.i3745 store i64 %add.i107.i.i3770, ptr %storage_ix, align 8 - %arrayidx19.i.i3771 = getelementptr inbounds i32, ptr %cmd_histo4.i.i2615, i64 %add10.i.i3750 + %arrayidx19.i.i3771 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i2615, i64 %add10.i.i3750 %950 = load i32, ptr %arrayidx19.i.i3771, align 4 %inc20.i.i3772 = add i32 %950, 1 store i32 %inc20.i.i3772, ptr %arrayidx19.i.i3771, align 4 @@ -6839,10 +6839,10 @@ if.then8.i.i3614: ; preds = %if.else.i720.i3244 %narrow994.i3621 = add nuw nsw i32 %shl.i745.i3620, 4 %add.i746.i3622 = zext nneg i32 %narrow994.i3621 to i64 %add12.i.i3623 = add nuw nsw i64 %shr.i744.i3619, %add.i746.i3622 - %arrayidx13.i747.i3624 = getelementptr inbounds i8, ptr %cmd_depth1.i.i2613, i64 %add12.i.i3623 + %arrayidx13.i747.i3624 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i2613, i64 %add12.i.i3623 %1011 = load i8, ptr %arrayidx13.i747.i3624, align 1 %conv14.i748.i3625 = zext i8 %1011 to i64 - %arrayidx15.i.i3626 = getelementptr inbounds i16, ptr %cmd_bits2.i.i2614, i64 %add12.i.i3623 + %arrayidx15.i.i3626 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i2614, i64 %add12.i.i3623 %1012 = load i16, ptr %arrayidx15.i.i3626, align 2 %conv16.i.i3627 = zext i16 %1012 to i64 %1013 = load i64, ptr %storage_ix, align 8 @@ -6870,7 +6870,7 @@ if.then8.i.i3614: ; preds = %if.else.i720.i3244 %1017 = load i64, ptr %storage_ix, align 8 %add.i208.i.i3643 = add i64 %1017, %sh_prom.i743.i3618 store i64 %add.i208.i.i3643, ptr %storage_ix, align 8 - %arrayidx21.i749.i3644 = getelementptr inbounds i32, ptr %cmd_histo4.i.i2615, i64 %add12.i.i3623 + %arrayidx21.i749.i3644 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i2615, i64 %add12.i.i3623 %1018 = load i32, ptr %arrayidx21.i749.i3644, align 4 %inc22.i.i3645 = add i32 %1018, 1 store i32 %inc22.i.i3645, ptr %arrayidx21.i749.i3644, align 4 @@ -7207,10 +7207,10 @@ if.end197.i.i3348: ; preds = %FindMatchLengthWith if.then.i934.i3501: ; preds = %if.end197.i.i3348 %add.i935.i3502 = add nsw i64 %retval.i.0.i3343, 19 - %arrayidx.i936.i3503 = getelementptr inbounds i8, ptr %cmd_depth1.i.i2613, i64 %add.i935.i3502 + %arrayidx.i936.i3503 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i2613, i64 %add.i935.i3502 %1070 = load i8, ptr %arrayidx.i936.i3503, align 1 %conv.i937.i3504 = zext i8 %1070 to i64 - %arrayidx2.i939.i3505 = getelementptr inbounds i16, ptr %cmd_bits2.i.i2614, i64 %add.i935.i3502 + %arrayidx2.i939.i3505 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i2614, i64 %add.i935.i3502 %1071 = load i16, ptr %arrayidx2.i939.i3505, align 2 %conv3.i940.i3506 = zext i16 %1071 to i64 %1072 = load i64, ptr %storage_ix, align 8 @@ -7225,7 +7225,7 @@ if.then.i934.i3501: ; preds = %if.end197.i.i3348 %1074 = load i64, ptr %storage_ix, align 8 %add.i135.i.i3513 = add i64 %1074, %conv.i937.i3504 store i64 %add.i135.i.i3513, ptr %storage_ix, align 8 - %arrayidx5.i942.i3514 = getelementptr inbounds i32, ptr %cmd_histo4.i.i2615, i64 %add.i935.i3502 + %arrayidx5.i942.i3514 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i2615, i64 %add.i935.i3502 %1075 = load i32, ptr %arrayidx5.i942.i3514, align 4 %inc.i943.i3515 = add i32 %1075, 1 store i32 %inc.i943.i3515, ptr %arrayidx5.i942.i3514, align 4 @@ -7246,10 +7246,10 @@ if.then8.i916.i3469: ; preds = %if.else.i889.i3352 %narrow995.i3476 = add nuw nsw i32 %shl.i922.i3475, 20 %add11.i.i3477 = zext nneg i32 %narrow995.i3476 to i64 %add12.i923.i3478 = add nuw nsw i64 %shr.i921.i3474, %add11.i.i3477 - %arrayidx13.i924.i3479 = getelementptr inbounds i8, ptr %cmd_depth1.i.i2613, i64 %add12.i923.i3478 + %arrayidx13.i924.i3479 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i2613, i64 %add12.i923.i3478 %1077 = load i8, ptr %arrayidx13.i924.i3479, align 1 %conv14.i925.i3480 = zext i8 %1077 to i64 - %arrayidx15.i926.i3481 = getelementptr inbounds i16, ptr %cmd_bits2.i.i2614, i64 %add12.i923.i3478 + %arrayidx15.i926.i3481 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i2614, i64 %add12.i923.i3478 %1078 = load i16, ptr %arrayidx15.i926.i3481, align 2 %conv16.i927.i3482 = zext i16 %1078 to i64 %1079 = load i64, ptr %storage_ix, align 8 @@ -7277,7 +7277,7 @@ if.then8.i916.i3469: ; preds = %if.else.i889.i3352 %1083 = load i64, ptr %storage_ix, align 8 %add.i109.i.i3498 = add i64 %1083, %sh_prom.i920.i3473 store i64 %add.i109.i.i3498, ptr %storage_ix, align 8 - %arrayidx21.i932.i3499 = getelementptr inbounds i32, ptr %cmd_histo4.i.i2615, i64 %add12.i923.i3478 + %arrayidx21.i932.i3499 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i2615, i64 %add12.i923.i3478 %1084 = load i32, ptr %arrayidx21.i932.i3499, align 4 %inc22.i933.i3500 = add i32 %1084, 1 store i32 %inc22.i933.i3500, ptr %arrayidx21.i932.i3499, align 4 @@ -7640,10 +7640,10 @@ if.then6.i299.i2937: ; preds = %if.else.i241.i2864 %narrow996.i2944 = add nuw nsw i32 %shl.i306.i2943, 42 %add9.i308.i2945 = zext nneg i32 %narrow996.i2944 to i64 %add10.i309.i2946 = add nuw nsw i64 %shr.i305.i2942, %add9.i308.i2945 - %arrayidx11.i310.i2947 = getelementptr inbounds i8, ptr %cmd_depth1.i.i2613, i64 %add10.i309.i2946 + %arrayidx11.i310.i2947 = getelementptr inbounds nuw i8, ptr %cmd_depth1.i.i2613, i64 %add10.i309.i2946 %1133 = load i8, ptr %arrayidx11.i310.i2947, align 1 %conv12.i311.i2948 = zext i8 %1133 to i64 - %arrayidx13.i312.i2949 = getelementptr inbounds i16, ptr %cmd_bits2.i.i2614, i64 %add10.i309.i2946 + %arrayidx13.i312.i2949 = getelementptr inbounds nuw i16, ptr %cmd_bits2.i.i2614, i64 %add10.i309.i2946 %1134 = load i16, ptr %arrayidx13.i312.i2949, align 2 %conv14.i313.i2950 = zext i16 %1134 to i64 %1135 = load i64, ptr %storage_ix, align 8 @@ -7671,7 +7671,7 @@ if.then6.i299.i2937: ; preds = %if.else.i241.i2864 %1139 = load i64, ptr %storage_ix, align 8 %add.i107.i331.i2966 = add i64 %1139, %sh_prom.i304.i2941 store i64 %add.i107.i331.i2966, ptr %storage_ix, align 8 - %arrayidx19.i332.i2967 = getelementptr inbounds i32, ptr %cmd_histo4.i.i2615, i64 %add10.i309.i2946 + %arrayidx19.i332.i2967 = getelementptr inbounds nuw i32, ptr %cmd_histo4.i.i2615, i64 %add10.i309.i2946 %1140 = load i32, ptr %arrayidx19.i332.i2967, align 4 %inc20.i333.i2968 = add i32 %1140, 1 store i32 %inc20.i333.i2968, ptr %arrayidx19.i332.i2967, align 4 diff --git a/bench/bullet3/optimized/b3CpuNarrowPhase.ll b/bench/bullet3/optimized/b3CpuNarrowPhase.ll index 786c75c5baf..82a2d735fd3 100644 --- a/bench/bullet3/optimized/b3CpuNarrowPhase.ll +++ b/bench/bullet3/optimized/b3CpuNarrowPhase.ll @@ -3606,8 +3606,8 @@ if.else: ; preds = %entry %arrayidx69 = getelementptr inbounds nuw float, ptr %arrayidx66, i64 %idxprom %10 = load float, ptr %arrayidx69, align 4 %idxprom71 = sext i32 %rem to i64 - %arrayidx72 = getelementptr inbounds [3 x %class.b3Vector3], ptr %this, i64 0, i64 %idxprom71 - %arrayidx75 = getelementptr inbounds float, ptr %arrayidx72, i64 %idxprom71 + %arrayidx72 = getelementptr inbounds nuw [3 x %class.b3Vector3], ptr %this, i64 0, i64 %idxprom71 + %arrayidx75 = getelementptr inbounds nuw float, ptr %arrayidx72, i64 %idxprom71 %11 = load float, ptr %arrayidx75, align 4 %sub76 = fsub float %10, %11 %idxprom78 = zext nneg i32 %rem63 to i64 @@ -3621,7 +3621,7 @@ if.else: ; preds = %entry %arrayidx88 = getelementptr inbounds nuw [4 x float], ptr %temp, i64 0, i64 %idxprom store float %mul86, ptr %arrayidx88, align 4 %div89 = fdiv float 5.000000e-01, %call.i39 - %arrayidx95 = getelementptr inbounds float, ptr %arrayidx79, i64 %idxprom71 + %arrayidx95 = getelementptr inbounds nuw float, ptr %arrayidx79, i64 %idxprom71 %13 = load float, ptr %arrayidx95, align 4 %arrayidx101 = getelementptr inbounds nuw float, ptr %arrayidx72, i64 %idxprom78 %14 = load float, ptr %arrayidx101, align 4 @@ -3631,11 +3631,11 @@ if.else: ; preds = %entry store float %mul103, ptr %arrayidx104, align 4 %arrayidx110 = getelementptr inbounds nuw float, ptr %arrayidx72, i64 %idxprom %15 = load float, ptr %arrayidx110, align 4 - %arrayidx116 = getelementptr inbounds float, ptr %arrayidx66, i64 %idxprom71 + %arrayidx116 = getelementptr inbounds nuw float, ptr %arrayidx66, i64 %idxprom71 %16 = load float, ptr %arrayidx116, align 4 %add117 = fadd float %15, %16 %mul118 = fmul float %div89, %add117 - %arrayidx120 = getelementptr inbounds [4 x float], ptr %temp, i64 0, i64 %idxprom71 + %arrayidx120 = getelementptr inbounds nuw [4 x float], ptr %temp, i64 0, i64 %idxprom71 store float %mul118, ptr %arrayidx120, align 4 %arrayidx126 = getelementptr inbounds nuw float, ptr %arrayidx79, i64 %idxprom %17 = load float, ptr %arrayidx126, align 4 diff --git a/bench/ceres/optimized/covariance_impl.cc.ll b/bench/ceres/optimized/covariance_impl.cc.ll index 9e52d0a5125..2ece9c76813 100644 --- a/bench/ceres/optimized/covariance_impl.cc.ll +++ b/bench/ceres/optimized/covariance_impl.cc.ll @@ -60598,7 +60598,7 @@ _ZN5Eigen8internal31unaligned_dense_assignment_loopILb0EE3runINS0_31generic_dens %gep.i.i.i.i.i24 = getelementptr double, ptr %invariant.gep.i.i.i.i.i21, i64 %96 %97 = load <2 x double>, ptr %gep.i.i.i.i.i24, align 1 %98 = shufflevector <2 x double> %97, <2 x double> poison, <2 x i32> - %99 = getelementptr inbounds double, ptr %75, i64 %.021.i.i.i.i.i.i23 + %99 = getelementptr inbounds nuw double, ptr %75, i64 %.021.i.i.i.i.i.i23 %100 = load <2 x double>, ptr %99, align 16 %101 = shufflevector <2 x double> %100, <2 x double> poison, <2 x i32> store <2 x double> %101, ptr %gep.i.i.i.i.i24, align 1 @@ -75532,7 +75532,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge %.076115 = phi i32 [ %43, %.lr.ph117 ], [ %78, %._crit_edge113 ] %.077116 = add nsw i64 %.077116.in, -1 %46 = load ptr, ptr %40, align 8 - %47 = getelementptr inbounds i32, ptr %46, i64 %.077116 + %47 = getelementptr inbounds nuw i32, ptr %46, i64 %.077116 %48 = load i32, ptr %47, align 4 %49 = sub nsw i32 %.076115, %48 %50 = icmp sgt i32 %49, 0 @@ -75541,13 +75541,13 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge .lr.ph112: ; preds = %45 %51 = add nsw i32 %49, -1 %52 = zext nneg i32 %51 to i64 - %53 = getelementptr inbounds i32, ptr %10, i64 %.077116 + %53 = getelementptr inbounds nuw i32, ptr %10, i64 %.077116 br label %54 54: ; preds = %.lr.ph112, %54 %.075110 = phi i64 [ %52, %.lr.ph112 ], [ %77, %54 ] %55 = load ptr, ptr %40, align 8 - %56 = getelementptr inbounds i32, ptr %55, i64 %.077116 + %56 = getelementptr inbounds nuw i32, ptr %55, i64 %.077116 %57 = load i32, ptr %56, align 4 %58 = sext i32 %57 to i64 %59 = load ptr, ptr %44, align 8 @@ -75559,7 +75559,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge %65 = getelementptr i32, ptr %60, i64 %64 store i32 %62, ptr %65, align 4 %66 = load ptr, ptr %40, align 8 - %67 = getelementptr inbounds i32, ptr %66, i64 %.077116 + %67 = getelementptr inbounds nuw i32, ptr %66, i64 %.077116 %68 = load i32, ptr %67, align 4 %69 = sext i32 %68 to i64 %70 = load ptr, ptr %31, align 8 @@ -75576,19 +75576,19 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge ._crit_edge113.loopexit: ; preds = %54 %.pre123 = load ptr, ptr %40, align 8 - %.phi.trans.insert = getelementptr inbounds i32, ptr %.pre123, i64 %.077116 + %.phi.trans.insert = getelementptr inbounds nuw i32, ptr %.pre123, i64 %.077116 %.pre124 = load i32, ptr %.phi.trans.insert, align 4 br label %._crit_edge113 ._crit_edge113: ; preds = %._crit_edge113.loopexit, %45 %78 = phi i32 [ %.pre124, %._crit_edge113.loopexit ], [ %48, %45 ] %79 = phi ptr [ %.pre123, %._crit_edge113.loopexit ], [ %46, %45 ] - %80 = getelementptr inbounds i32, ptr %79, i64 %.077116 - %81 = getelementptr inbounds i32, ptr %10, i64 %.077116 + %80 = getelementptr inbounds nuw i32, ptr %79, i64 %.077116 + %81 = getelementptr inbounds nuw i32, ptr %10, i64 %.077116 %82 = load i32, ptr %81, align 4 store i32 %82, ptr %80, align 4 %83 = load ptr, ptr %3, align 8 - %84 = getelementptr inbounds i32, ptr %83, i64 %.077116 + %84 = getelementptr inbounds nuw i32, ptr %83, i64 %.077116 store i32 %49, ptr %84, align 4 %85 = icmp sgt i64 %.077116.in, 1 br i1 %85, label %45, label %._crit_edge118, !llvm.loop !2654 @@ -75601,10 +75601,10 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge 87: ; preds = %._crit_edge118 %88 = add nsw i64 %.pre125, -1 - %89 = getelementptr inbounds i32, ptr %.pre127.pre, i64 %88 + %89 = getelementptr inbounds nuw i32, ptr %.pre127.pre, i64 %88 %90 = load i32, ptr %89, align 4 %91 = load ptr, ptr %3, align 8 - %92 = getelementptr inbounds i32, ptr %91, i64 %88 + %92 = getelementptr inbounds nuw i32, ptr %91, i64 %88 %93 = load i32, ptr %92, align 4 %94 = add nsw i32 %93, %90 %95 = load ptr, ptr %1, align 8 @@ -75710,17 +75710,17 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed 143: ; preds = %.lr.ph102, %.loopexit %.071101.in = phi i64 [ %138, %.lr.ph102 ], [ %.071101, %.loopexit ] %.071101 = add nsw i64 %.071101.in, -1 - %144 = getelementptr inbounds i32, ptr %110, i64 %.071101 + %144 = getelementptr inbounds nuw i32, ptr %110, i64 %.071101 %145 = load i32, ptr %144, align 4 %146 = load ptr, ptr %141, align 8 - %147 = getelementptr inbounds i32, ptr %146, i64 %.071101 + %147 = getelementptr inbounds nuw i32, ptr %146, i64 %.071101 %148 = load i32, ptr %147, align 4 %149 = icmp sgt i32 %145, %148 br i1 %149, label %150, label %.loopexit 150: ; preds = %143 %151 = load ptr, ptr %3, align 8 - %152 = getelementptr inbounds i32, ptr %151, i64 %.071101 + %152 = getelementptr inbounds nuw i32, ptr %151, i64 %.071101 %153 = load i32, ptr %152, align 4 %154 = icmp sgt i32 %153, 0 br i1 %154, label %.lr.ph99.preheader, label %.loopexit @@ -75734,7 +75734,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed .lr.ph99: ; preds = %.lr.ph99.preheader, %.lr.ph99 %.097 = phi i64 [ %176, %.lr.ph99 ], [ %156, %.lr.ph99.preheader ] %158 = load ptr, ptr %141, align 8 - %159 = getelementptr inbounds i32, ptr %158, i64 %.071101 + %159 = getelementptr inbounds nuw i32, ptr %158, i64 %.071101 %160 = load i32, ptr %159, align 4 %161 = sext i32 %160 to i64 %162 = load ptr, ptr %142, align 8 @@ -75744,7 +75744,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed %166 = getelementptr i32, ptr %163, i64 %157 store i32 %165, ptr %166, align 4 %167 = load ptr, ptr %141, align 8 - %168 = getelementptr inbounds i32, ptr %167, i64 %.071101 + %168 = getelementptr inbounds nuw i32, ptr %167, i64 %.071101 %169 = load i32, ptr %168, align 4 %170 = sext i32 %169 to i64 %171 = load ptr, ptr %132, align 8 @@ -76324,7 +76324,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge %.076117 = phi i32 [ %42, %.lr.ph119 ], [ %77, %._crit_edge115 ] %.077118 = add nsw i64 %.077118.in, -1 %45 = load ptr, ptr %39, align 8 - %46 = getelementptr inbounds i32, ptr %45, i64 %.077118 + %46 = getelementptr inbounds nuw i32, ptr %45, i64 %.077118 %47 = load i32, ptr %46, align 4 %48 = sub nsw i32 %.076117, %47 %49 = icmp sgt i32 %48, 0 @@ -76333,13 +76333,13 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge .lr.ph114: ; preds = %44 %50 = add nsw i32 %48, -1 %51 = zext nneg i32 %50 to i64 - %52 = getelementptr inbounds i32, ptr %10, i64 %.077118 + %52 = getelementptr inbounds nuw i32, ptr %10, i64 %.077118 br label %53 53: ; preds = %.lr.ph114, %53 %.075112 = phi i64 [ %51, %.lr.ph114 ], [ %76, %53 ] %54 = load ptr, ptr %39, align 8 - %55 = getelementptr inbounds i32, ptr %54, i64 %.077118 + %55 = getelementptr inbounds nuw i32, ptr %54, i64 %.077118 %56 = load i32, ptr %55, align 4 %57 = sext i32 %56 to i64 %58 = load ptr, ptr %43, align 8 @@ -76351,7 +76351,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge %64 = getelementptr i32, ptr %59, i64 %63 store i32 %61, ptr %64, align 4 %65 = load ptr, ptr %39, align 8 - %66 = getelementptr inbounds i32, ptr %65, i64 %.077118 + %66 = getelementptr inbounds nuw i32, ptr %65, i64 %.077118 %67 = load i32, ptr %66, align 4 %68 = sext i32 %67 to i64 %69 = load ptr, ptr %30, align 8 @@ -76368,19 +76368,19 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge ._crit_edge115.loopexit: ; preds = %53 %.pre125 = load ptr, ptr %39, align 8 - %.phi.trans.insert = getelementptr inbounds i32, ptr %.pre125, i64 %.077118 + %.phi.trans.insert = getelementptr inbounds nuw i32, ptr %.pre125, i64 %.077118 %.pre126 = load i32, ptr %.phi.trans.insert, align 4 br label %._crit_edge115 ._crit_edge115: ; preds = %._crit_edge115.loopexit, %44 %77 = phi i32 [ %.pre126, %._crit_edge115.loopexit ], [ %47, %44 ] %78 = phi ptr [ %.pre125, %._crit_edge115.loopexit ], [ %45, %44 ] - %79 = getelementptr inbounds i32, ptr %78, i64 %.077118 - %80 = getelementptr inbounds i32, ptr %10, i64 %.077118 + %79 = getelementptr inbounds nuw i32, ptr %78, i64 %.077118 + %80 = getelementptr inbounds nuw i32, ptr %10, i64 %.077118 %81 = load i32, ptr %80, align 4 store i32 %81, ptr %79, align 4 %82 = load ptr, ptr %3, align 8 - %83 = getelementptr inbounds i32, ptr %82, i64 %.077118 + %83 = getelementptr inbounds nuw i32, ptr %82, i64 %.077118 store i32 %48, ptr %83, align 4 %84 = icmp sgt i64 %.077118.in, 1 br i1 %84, label %44, label %._crit_edge120, !llvm.loop !2672 @@ -76393,10 +76393,10 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge 86: ; preds = %._crit_edge120 %87 = add nsw i64 %.pre127, -1 - %88 = getelementptr inbounds i32, ptr %.pre129.pre, i64 %87 + %88 = getelementptr inbounds nuw i32, ptr %.pre129.pre, i64 %87 %89 = load i32, ptr %88, align 4 %90 = load ptr, ptr %3, align 8 - %91 = getelementptr inbounds i32, ptr %90, i64 %87 + %91 = getelementptr inbounds nuw i32, ptr %90, i64 %87 %92 = load i32, ptr %91, align 4 %93 = add nsw i32 %92, %89 %94 = getelementptr inbounds nuw i8, ptr %1, i64 12 @@ -76500,17 +76500,17 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed 140: ; preds = %.lr.ph104, %.loopexit %.071103.in = phi i64 [ %135, %.lr.ph104 ], [ %.071103, %.loopexit ] %.071103 = add nsw i64 %.071103.in, -1 - %141 = getelementptr inbounds i32, ptr %108, i64 %.071103 + %141 = getelementptr inbounds nuw i32, ptr %108, i64 %.071103 %142 = load i32, ptr %141, align 4 %143 = load ptr, ptr %138, align 8 - %144 = getelementptr inbounds i32, ptr %143, i64 %.071103 + %144 = getelementptr inbounds nuw i32, ptr %143, i64 %.071103 %145 = load i32, ptr %144, align 4 %146 = icmp sgt i32 %142, %145 br i1 %146, label %147, label %.loopexit 147: ; preds = %140 %148 = load ptr, ptr %3, align 8 - %149 = getelementptr inbounds i32, ptr %148, i64 %.071103 + %149 = getelementptr inbounds nuw i32, ptr %148, i64 %.071103 %150 = load i32, ptr %149, align 4 %151 = icmp sgt i32 %150, 0 br i1 %151, label %.lr.ph101.preheader, label %.loopexit @@ -76524,7 +76524,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed .lr.ph101: ; preds = %.lr.ph101.preheader, %.lr.ph101 %.099 = phi i64 [ %173, %.lr.ph101 ], [ %153, %.lr.ph101.preheader ] %155 = load ptr, ptr %138, align 8 - %156 = getelementptr inbounds i32, ptr %155, i64 %.071103 + %156 = getelementptr inbounds nuw i32, ptr %155, i64 %.071103 %157 = load i32, ptr %156, align 4 %158 = sext i32 %157 to i64 %159 = load ptr, ptr %139, align 8 @@ -76534,7 +76534,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed %163 = getelementptr i32, ptr %160, i64 %154 store i32 %162, ptr %163, align 4 %164 = load ptr, ptr %138, align 8 - %165 = getelementptr inbounds i32, ptr %164, i64 %.071103 + %165 = getelementptr inbounds nuw i32, ptr %164, i64 %.071103 %166 = load i32, ptr %165, align 4 %167 = sext i32 %166 to i64 %168 = load ptr, ptr %129, align 8 @@ -76652,7 +76652,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge %.076117 = phi i32 [ %46, %.lr.ph119 ], [ %81, %._crit_edge115 ] %.077118 = add nsw i64 %.077118.in, -1 %49 = load ptr, ptr %43, align 8 - %50 = getelementptr inbounds i32, ptr %49, i64 %.077118 + %50 = getelementptr inbounds nuw i32, ptr %49, i64 %.077118 %51 = load i32, ptr %50, align 4 %52 = sub nsw i32 %.076117, %51 %53 = icmp sgt i32 %52, 0 @@ -76661,13 +76661,13 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge .lr.ph114: ; preds = %48 %54 = add nsw i32 %52, -1 %55 = zext nneg i32 %54 to i64 - %56 = getelementptr inbounds i32, ptr %10, i64 %.077118 + %56 = getelementptr inbounds nuw i32, ptr %10, i64 %.077118 br label %57 57: ; preds = %.lr.ph114, %57 %.075112 = phi i64 [ %55, %.lr.ph114 ], [ %80, %57 ] %58 = load ptr, ptr %43, align 8 - %59 = getelementptr inbounds i32, ptr %58, i64 %.077118 + %59 = getelementptr inbounds nuw i32, ptr %58, i64 %.077118 %60 = load i32, ptr %59, align 4 %61 = sext i32 %60 to i64 %62 = load ptr, ptr %47, align 8 @@ -76679,7 +76679,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge %68 = getelementptr i32, ptr %63, i64 %67 store i32 %65, ptr %68, align 4 %69 = load ptr, ptr %43, align 8 - %70 = getelementptr inbounds i32, ptr %69, i64 %.077118 + %70 = getelementptr inbounds nuw i32, ptr %69, i64 %.077118 %71 = load i32, ptr %70, align 4 %72 = sext i32 %71 to i64 %73 = load ptr, ptr %34, align 8 @@ -76696,19 +76696,19 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge ._crit_edge115.loopexit: ; preds = %57 %.pre125 = load ptr, ptr %43, align 8 - %.phi.trans.insert = getelementptr inbounds i32, ptr %.pre125, i64 %.077118 + %.phi.trans.insert = getelementptr inbounds nuw i32, ptr %.pre125, i64 %.077118 %.pre126 = load i32, ptr %.phi.trans.insert, align 4 br label %._crit_edge115 ._crit_edge115: ; preds = %._crit_edge115.loopexit, %48 %81 = phi i32 [ %.pre126, %._crit_edge115.loopexit ], [ %51, %48 ] %82 = phi ptr [ %.pre125, %._crit_edge115.loopexit ], [ %49, %48 ] - %83 = getelementptr inbounds i32, ptr %82, i64 %.077118 - %84 = getelementptr inbounds i32, ptr %10, i64 %.077118 + %83 = getelementptr inbounds nuw i32, ptr %82, i64 %.077118 + %84 = getelementptr inbounds nuw i32, ptr %10, i64 %.077118 %85 = load i32, ptr %84, align 4 store i32 %85, ptr %83, align 4 %86 = load ptr, ptr %3, align 8 - %87 = getelementptr inbounds i32, ptr %86, i64 %.077118 + %87 = getelementptr inbounds nuw i32, ptr %86, i64 %.077118 store i32 %52, ptr %87, align 4 %88 = icmp sgt i64 %.077118.in, 1 br i1 %88, label %48, label %._crit_edge120, !llvm.loop !2678 @@ -76721,10 +76721,10 @@ _ZN5Eigen8internal17CompressedStorageIdiE7reserveEl.exit: ; preds = %._crit_edge 90: ; preds = %._crit_edge120 %91 = add nsw i64 %.pre127, -1 - %92 = getelementptr inbounds i32, ptr %.pre129.pre, i64 %91 + %92 = getelementptr inbounds nuw i32, ptr %.pre129.pre, i64 %91 %93 = load i32, ptr %92, align 4 %94 = load ptr, ptr %3, align 8 - %95 = getelementptr inbounds i32, ptr %94, i64 %91 + %95 = getelementptr inbounds nuw i32, ptr %94, i64 %91 %96 = load i32, ptr %95, align 4 %97 = add nsw i32 %96, %93 %98 = load i32, ptr %1, align 4 @@ -76836,17 +76836,17 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed 152: ; preds = %.lr.ph104, %.loopexit %.071103.in = phi i64 [ %147, %.lr.ph104 ], [ %.071103, %.loopexit ] %.071103 = add nsw i64 %.071103.in, -1 - %153 = getelementptr inbounds i32, ptr %116, i64 %.071103 + %153 = getelementptr inbounds nuw i32, ptr %116, i64 %.071103 %154 = load i32, ptr %153, align 4 %155 = load ptr, ptr %150, align 8 - %156 = getelementptr inbounds i32, ptr %155, i64 %.071103 + %156 = getelementptr inbounds nuw i32, ptr %155, i64 %.071103 %157 = load i32, ptr %156, align 4 %158 = icmp sgt i32 %154, %157 br i1 %158, label %159, label %.loopexit 159: ; preds = %152 %160 = load ptr, ptr %3, align 8 - %161 = getelementptr inbounds i32, ptr %160, i64 %.071103 + %161 = getelementptr inbounds nuw i32, ptr %160, i64 %.071103 %162 = load i32, ptr %161, align 4 %163 = icmp sgt i32 %162, 0 br i1 %163, label %.lr.ph101.preheader, label %.loopexit @@ -76860,7 +76860,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed .lr.ph101: ; preds = %.lr.ph101.preheader, %.lr.ph101 %.099 = phi i64 [ %185, %.lr.ph101 ], [ %165, %.lr.ph101.preheader ] %167 = load ptr, ptr %150, align 8 - %168 = getelementptr inbounds i32, ptr %167, i64 %.071103 + %168 = getelementptr inbounds nuw i32, ptr %167, i64 %.071103 %169 = load i32, ptr %168, align 4 %170 = sext i32 %169 to i64 %171 = load ptr, ptr %151, align 8 @@ -76870,7 +76870,7 @@ _ZN5Eigen8internal17CompressedStorageIdiE6resizeEld.exit83: ; preds = %._crit_ed %175 = getelementptr i32, ptr %172, i64 %166 store i32 %174, ptr %175, align 4 %176 = load ptr, ptr %150, align 8 - %177 = getelementptr inbounds i32, ptr %176, i64 %.071103 + %177 = getelementptr inbounds nuw i32, ptr %176, i64 %.071103 %178 = load i32, ptr %177, align 4 %179 = sext i32 %178 to i64 %180 = load ptr, ptr %141, align 8 diff --git a/bench/ceres/optimized/reorder_program.cc.ll b/bench/ceres/optimized/reorder_program.cc.ll index 87e3dc35cec..b181f1bc25c 100644 --- a/bench/ceres/optimized/reorder_program.cc.ll +++ b/bench/ceres/optimized/reorder_program.cc.ll @@ -4593,7 +4593,7 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe %.076114 = phi i32 [ %37, %.lr.ph117 ], [ %72, %._crit_edge112 ] %.077115 = add nsw i64 %.077115.in, -1 %40 = load ptr, ptr %32, align 8 - %41 = getelementptr inbounds i32, ptr %40, i64 %.077115 + %41 = getelementptr inbounds nuw i32, ptr %40, i64 %.077115 %42 = load i32, ptr %41, align 4 %43 = sub nsw i32 %.076114, %42 %44 = icmp sgt i32 %43, 0 @@ -4602,13 +4602,13 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe .lr.ph111: ; preds = %39 %45 = add nsw i32 %43, -1 %46 = zext nneg i32 %45 to i64 - %47 = getelementptr inbounds i32, ptr %10, i64 %.077115 + %47 = getelementptr inbounds nuw i32, ptr %10, i64 %.077115 br label %48 48: ; preds = %.lr.ph111, %48 %.075109 = phi i64 [ %46, %.lr.ph111 ], [ %71, %48 ] %49 = load ptr, ptr %32, align 8 - %50 = getelementptr inbounds i32, ptr %49, i64 %.077115 + %50 = getelementptr inbounds nuw i32, ptr %49, i64 %.077115 %51 = load i32, ptr %50, align 4 %52 = sext i32 %51 to i64 %53 = load ptr, ptr %38, align 8 @@ -4620,7 +4620,7 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe %59 = getelementptr i32, ptr %54, i64 %58 store i32 %56, ptr %59, align 4 %60 = load ptr, ptr %32, align 8 - %61 = getelementptr inbounds i32, ptr %60, i64 %.077115 + %61 = getelementptr inbounds nuw i32, ptr %60, i64 %.077115 %62 = load i32, ptr %61, align 4 %63 = sext i32 %62 to i64 %64 = load ptr, ptr %31, align 8 @@ -4637,19 +4637,19 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe ._crit_edge112.loopexit: ; preds = %48 %.pre121 = load ptr, ptr %32, align 8 - %.phi.trans.insert = getelementptr inbounds i32, ptr %.pre121, i64 %.077115 + %.phi.trans.insert = getelementptr inbounds nuw i32, ptr %.pre121, i64 %.077115 %.pre122 = load i32, ptr %.phi.trans.insert, align 4 br label %._crit_edge112 ._crit_edge112: ; preds = %._crit_edge112.loopexit, %39 %72 = phi i32 [ %.pre122, %._crit_edge112.loopexit ], [ %42, %39 ] %73 = phi ptr [ %.pre121, %._crit_edge112.loopexit ], [ %40, %39 ] - %74 = getelementptr inbounds i32, ptr %73, i64 %.077115 - %75 = getelementptr inbounds i32, ptr %10, i64 %.077115 + %74 = getelementptr inbounds nuw i32, ptr %73, i64 %.077115 + %75 = getelementptr inbounds nuw i32, ptr %10, i64 %.077115 %76 = load i32, ptr %75, align 4 store i32 %76, ptr %74, align 4 %77 = load ptr, ptr %3, align 8 - %78 = getelementptr inbounds i32, ptr %77, i64 %.077115 + %78 = getelementptr inbounds nuw i32, ptr %77, i64 %.077115 store i32 %43, ptr %78, align 4 %79 = icmp sgt i64 %.077115.in, 1 br i1 %79, label %39, label %._crit_edge118, !llvm.loop !58 @@ -4662,10 +4662,10 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe 81: ; preds = %._crit_edge118 %82 = load ptr, ptr %32, align 8 %83 = add nsw i64 %.pre123, -1 - %84 = getelementptr inbounds i32, ptr %82, i64 %83 + %84 = getelementptr inbounds nuw i32, ptr %82, i64 %83 %85 = load i32, ptr %84, align 4 %86 = load ptr, ptr %3, align 8 - %87 = getelementptr inbounds i32, ptr %86, i64 %83 + %87 = getelementptr inbounds nuw i32, ptr %86, i64 %83 %88 = load i32, ptr %87, align 4 %89 = add nsw i32 %88, %85 %90 = load ptr, ptr %1, align 8 @@ -4749,17 +4749,17 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe 130: ; preds = %.lr.ph101, %.loopexit %.07199.in = phi i64 [ %126, %.lr.ph101 ], [ %.07199, %.loopexit ] %.07199 = add nsw i64 %.07199.in, -1 - %131 = getelementptr inbounds i32, ptr %102, i64 %.07199 + %131 = getelementptr inbounds nuw i32, ptr %102, i64 %.07199 %132 = load i32, ptr %131, align 4 %133 = load ptr, ptr %128, align 8 - %134 = getelementptr inbounds i32, ptr %133, i64 %.07199 + %134 = getelementptr inbounds nuw i32, ptr %133, i64 %.07199 %135 = load i32, ptr %134, align 4 %136 = icmp sgt i32 %132, %135 br i1 %136, label %137, label %.loopexit 137: ; preds = %130 %138 = load ptr, ptr %3, align 8 - %139 = getelementptr inbounds i32, ptr %138, i64 %.07199 + %139 = getelementptr inbounds nuw i32, ptr %138, i64 %.07199 %140 = load i32, ptr %139, align 4 %141 = icmp sgt i32 %140, 0 br i1 %141, label %.lr.ph97.preheader, label %.loopexit @@ -4773,7 +4773,7 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe .lr.ph97: ; preds = %.lr.ph97.preheader, %.lr.ph97 %.095 = phi i64 [ %163, %.lr.ph97 ], [ %143, %.lr.ph97.preheader ] %145 = load ptr, ptr %128, align 8 - %146 = getelementptr inbounds i32, ptr %145, i64 %.07199 + %146 = getelementptr inbounds nuw i32, ptr %145, i64 %.07199 %147 = load i32, ptr %146, align 4 %148 = sext i32 %147 to i64 %149 = load ptr, ptr %129, align 8 @@ -4783,7 +4783,7 @@ define linkonce_odr hidden void @_ZN5Eigen12SparseMatrixIiLi1EiE19reserveInnerVe %153 = getelementptr i32, ptr %150, i64 %144 store i32 %152, ptr %153, align 4 %154 = load ptr, ptr %128, align 8 - %155 = getelementptr inbounds i32, ptr %154, i64 %.07199 + %155 = getelementptr inbounds nuw i32, ptr %154, i64 %.07199 %156 = load i32, ptr %155, align 4 %157 = sext i32 %156 to i64 %158 = load ptr, ptr %124, align 8 diff --git a/bench/clap-rs/optimized/58cs3pckwcmstm46.ll b/bench/clap-rs/optimized/58cs3pckwcmstm46.ll index caf1434567a..4a89c7cbeed 100644 --- a/bench/clap-rs/optimized/58cs3pckwcmstm46.ll +++ b/bench/clap-rs/optimized/58cs3pckwcmstm46.ll @@ -2844,7 +2844,7 @@ define hidden void @"_ZN4core3ptr270drop_in_place$LT$alloc..vec..splice..Splice$ %33 = load ptr, ptr %32, align 8, !noalias !1469, !nonnull !4, !noundef !4 %34 = ptrtoint ptr %33 to i64 %35 = sub nuw i64 %9, %34 - %36 = getelementptr inbounds i8, ptr %33, i64 %35 + %36 = getelementptr inbounds nuw i8, ptr %33, i64 %35 tail call void @llvm.experimental.noalias.scope.decl(metadata !1470) br label %.lr.ph.i.i.i @@ -7487,7 +7487,7 @@ define hidden void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..drain..Drain$LT$ %30 = load ptr, ptr %29, align 8, !noalias !4518, !nonnull !4, !noundef !4 %31 = ptrtoint ptr %30 to i64 %32 = sub nuw i64 %6, %31 - %33 = getelementptr inbounds i8, ptr %30, i64 %32 + %33 = getelementptr inbounds nuw i8, ptr %30, i64 %32 tail call void @llvm.experimental.noalias.scope.decl(metadata !4521) br label %.lr.ph.i.i @@ -13120,7 +13120,7 @@ define hidden void @"_ZN79_$LT$alloc..vec..drain..Drain$LT$T$C$A$GT$$u20$as$u20$ %30 = load ptr, ptr %29, align 8, !nonnull !4, !noundef !4 %31 = ptrtoint ptr %30 to i64 %32 = sub nuw i64 %6, %31 - %33 = getelementptr inbounds i8, ptr %30, i64 %32 + %33 = getelementptr inbounds nuw i8, ptr %30, i64 %32 tail call void @llvm.experimental.noalias.scope.decl(metadata !6502) br label %.lr.ph.i diff --git a/bench/cmake/optimized/md4.c.ll b/bench/cmake/optimized/md4.c.ll index 11dbc7233e6..ff9d3e820e6 100644 --- a/bench/cmake/optimized/md4.c.ll +++ b/bench/cmake/optimized/md4.c.ll @@ -53,16 +53,17 @@ MD4_Update.exit: ; preds = %3, %15 %28 = getelementptr inbounds nuw [64 x i8], ptr %22, i64 0, i64 %23 call void @llvm.memset.p0.i64(ptr nonnull align 1 %28, i8 0, i64 %25, i1 false) %29 = call fastcc ptr @body(ptr noundef nonnull %4, ptr noundef nonnull %22, i64 noundef 64) + %.pre.i = load i32, ptr %4, align 4 br label %MD4_Final.exit MD4_Final.exit: ; preds = %MD4_Update.exit, %27 + %30 = phi i32 [ %.pre.i, %27 ], [ %.pre, %MD4_Update.exit ] %.064.i = phi i64 [ 0, %27 ], [ %23, %MD4_Update.exit ] %.0.i3 = phi i64 [ 64, %27 ], [ %25, %MD4_Update.exit ] - %30 = getelementptr inbounds [64 x i8], ptr %22, i64 0, i64 %.064.i - %31 = add nsw i64 %.0.i3, -8 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %30, i8 0, i64 %31, i1 false) - %32 = load i32, ptr %4, align 4 - %33 = shl i32 %32, 3 + %31 = getelementptr inbounds nuw [64 x i8], ptr %22, i64 0, i64 %.064.i + %32 = add nsw i64 %.0.i3, -8 + call void @llvm.memset.p0.i64(ptr nonnull align 1 %31, i8 0, i64 %32, i1 false) + %33 = shl i32 %30, 3 store i32 %33, ptr %4, align 4 %34 = and i32 %33, 248 %35 = zext nneg i32 %34 to i64 diff --git a/bench/crow/optimized/example.cpp.ll b/bench/crow/optimized/example.cpp.ll index b9ca506023c..f4acf2c5ee6 100644 --- a/bench/crow/optimized/example.cpp.ll +++ b/bench/crow/optimized/example.cpp.ll @@ -64928,7 +64928,7 @@ define linkonce_odr dso_local void @_ZSt16__introsort_loopIN9__gnu_cxx17__normal %21 = and i64 %.fr, 4 %22 = icmp eq i64 %21, 0 %23 = or disjoint i64 %17, 1 - %24 = getelementptr inbounds i32, ptr %0, i64 %23 + %24 = getelementptr inbounds nuw i32, ptr %0, i64 %23 %25 = getelementptr inbounds nuw i32, ptr %0, i64 %18 br i1 %22, label %.split, label %.split.us @@ -65669,7 +65669,7 @@ define linkonce_odr dso_local void @_ZNSt6vectorIiSaIiEE17_M_default_appendEm(pt 51: ; preds = %50, %48 store ptr %38, ptr %0, align 8, !tbaa !91 - %52 = getelementptr inbounds i32, ptr %39, i64 %1 + %52 = getelementptr inbounds nuw i32, ptr %39, i64 %1 store ptr %52, ptr %5, align 8, !tbaa !93 %53 = getelementptr inbounds nuw i32, ptr %38, i64 %36 store ptr %53, ptr %12, align 8, !tbaa !92 @@ -77992,7 +77992,7 @@ define linkonce_odr dso_local void @_ZNSt6vectorISt8functionIFNSt7__cxx1112basic 52: ; preds = %51, %.loopexit store ptr %32, ptr %0, align 8, !tbaa !122 - %53 = getelementptr inbounds %"class.std::function.143", ptr %33, i64 %1 + %53 = getelementptr inbounds nuw %"class.std::function.143", ptr %33, i64 %1 store ptr %53, ptr %5, align 8, !tbaa !124 %54 = getelementptr inbounds nuw %"class.std::function.143", ptr %32, i64 %30 store ptr %54, ptr %12, align 8, !tbaa !1551 @@ -78090,7 +78090,7 @@ define linkonce_odr dso_local void @_ZNSt6vectorIPN4crow6detail10task_timerESaIS 51: ; preds = %50, %48 store ptr %38, ptr %0, align 8, !tbaa !126 - %52 = getelementptr inbounds ptr, ptr %39, i64 %1 + %52 = getelementptr inbounds nuw ptr, ptr %39, i64 %1 store ptr %52, ptr %5, align 8, !tbaa !1034 %53 = getelementptr inbounds nuw ptr, ptr %38, i64 %36 store ptr %53, ptr %12, align 8, !tbaa !1561 @@ -96854,7 +96854,7 @@ define linkonce_odr dso_local void @_ZNSt6vectorIPcSaIS0_EE17_M_default_appendEm 51: ; preds = %50, %48 store ptr %38, ptr %0, align 8, !tbaa !836 - %52 = getelementptr inbounds ptr, ptr %39, i64 %1 + %52 = getelementptr inbounds nuw ptr, ptr %39, i64 %1 store ptr %52, ptr %5, align 8, !tbaa !838 %53 = getelementptr inbounds nuw ptr, ptr %38, i64 %36 store ptr %53, ptr %12, align 8, !tbaa !853 @@ -111394,7 +111394,7 @@ define linkonce_odr dso_local noundef i64 @_ZN4asio6detail21write_buffer_sequenc %108 = getelementptr inbounds nuw i8, ptr %105, i64 24 %109 = load i64, ptr %108, align 8, !tbaa !10, !noalias !2138 %110 = call i64 @llvm.umin.i64(i64 %109, i64 %104) - %111 = getelementptr inbounds [16 x %"class.asio::const_buffer"], ptr %6, i64 0, i64 %103 + %111 = getelementptr inbounds nuw [16 x %"class.asio::const_buffer"], ptr %6, i64 0, i64 %103 store ptr %107, ptr %111, align 8, !tbaa !28, !alias.scope !2138 %112 = getelementptr inbounds nuw i8, ptr %111, i64 8 store i64 %110, ptr %112, align 8, !tbaa !10, !alias.scope !2138 @@ -111967,7 +111967,7 @@ define linkonce_odr dso_local noundef i64 @_ZN4asio6detail21write_buffer_sequenc %112 = getelementptr inbounds nuw i8, ptr %109, i64 24 %113 = load i64, ptr %112, align 8, !tbaa !10, !noalias !2160 %114 = call i64 @llvm.umin.i64(i64 %113, i64 %108) - %115 = getelementptr inbounds [16 x %"class.asio::const_buffer"], ptr %8, i64 0, i64 %107 + %115 = getelementptr inbounds nuw [16 x %"class.asio::const_buffer"], ptr %8, i64 0, i64 %107 store ptr %111, ptr %115, align 8, !tbaa !28, !alias.scope !2160 %116 = getelementptr inbounds nuw i8, ptr %115, i64 8 store i64 %114, ptr %116, align 8, !tbaa !10, !alias.scope !2160 @@ -112800,7 +112800,7 @@ define linkonce_odr dso_local void @_ZN4asio6detail8write_opINS_19basic_stream_s %53 = getelementptr inbounds nuw i8, ptr %51, i64 8 %54 = load i64, ptr %53, align 8, !tbaa !10, !noalias !2176 %55 = tail call i64 @llvm.umin.i64(i64 %54, i64 %50) - %56 = getelementptr inbounds [16 x %"class.asio::const_buffer"], ptr %5, i64 0, i64 %49 + %56 = getelementptr inbounds nuw [16 x %"class.asio::const_buffer"], ptr %5, i64 0, i64 %49 store ptr %52, ptr %56, align 8, !tbaa !28, !alias.scope !2176 %57 = getelementptr inbounds nuw i8, ptr %56, i64 8 store i64 %55, ptr %57, align 8, !tbaa !10, !alias.scope !2176 diff --git a/bench/delta-rs/optimized/2braxl0lj34anf5z.ll b/bench/delta-rs/optimized/2braxl0lj34anf5z.ll index b6a34888578..dfdc0fcabaa 100644 --- a/bench/delta-rs/optimized/2braxl0lj34anf5z.ll +++ b/bench/delta-rs/optimized/2braxl0lj34anf5z.ll @@ -924,7 +924,7 @@ define internal void @"_ZN100_$LT$arrow_array..iterator..ArrayIter$LT$T$GT$$u20$ %36 = lshr i64 %35, 1 %37 = icmp ult i64 %5, %36 tail call void @llvm.assume(i1 %37) - %38 = getelementptr inbounds i16, ptr %33, i64 %5 + %38 = getelementptr inbounds nuw i16, ptr %33, i64 %5 %39 = load i16, ptr %38, align 2, !noalias !29, !noundef !4 %40 = zext i16 %39 to i64 %41 = getelementptr inbounds nuw i8, ptr %1, i64 8 @@ -40671,9 +40671,9 @@ define hidden { ptr, ptr } @"_ZN11arrow_array5array10list_array34GenericListArra unreachable 13: ; preds = %10 - %14 = getelementptr inbounds [0 x i64], ptr %4, i64 0, i64 %8 + %14 = getelementptr inbounds nuw [0 x i64], ptr %4, i64 0, i64 %8 %15 = load i64, ptr %14, align 8, !noundef !4 - %16 = getelementptr inbounds [0 x i64], ptr %4, i64 0, i64 %1 + %16 = getelementptr inbounds nuw [0 x i64], ptr %4, i64 0, i64 %1 %17 = load i64, ptr %16, align 8, !noundef !4 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 %19 = sub i64 %15, %17 @@ -40705,10 +40705,10 @@ define hidden { ptr, ptr } @"_ZN11arrow_array5array10list_array34GenericListArra unreachable 13: ; preds = %10 - %14 = getelementptr inbounds [0 x i32], ptr %4, i64 0, i64 %8 + %14 = getelementptr inbounds nuw [0 x i32], ptr %4, i64 0, i64 %8 %15 = load i32, ptr %14, align 4, !noundef !4 %16 = sext i32 %15 to i64 - %17 = getelementptr inbounds [0 x i32], ptr %4, i64 0, i64 %1 + %17 = getelementptr inbounds nuw [0 x i32], ptr %4, i64 0, i64 %1 %18 = load i32, ptr %17, align 4, !noundef !4 %19 = sext i32 %18 to i64 %20 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -65240,7 +65240,7 @@ define internal noundef i64 @_ZN4core4iter6traits8iterator8Iterator10advance_by1 %28 = lshr i64 %27, 1 %29 = icmp ult i64 %22, %28 tail call void @llvm.assume(i1 %29) - %30 = getelementptr inbounds i16, ptr %26, i64 %22 + %30 = getelementptr inbounds nuw i16, ptr %26, i64 %22 %31 = load i16, ptr %30, align 2, !noalias !18252, !noundef !4 %32 = zext i16 %31 to i64 %33 = load i64, ptr %21, align 8, !alias.scope !18253, !noalias !18256, !noundef !4 @@ -65301,7 +65301,7 @@ define internal noundef i64 @_ZN4core4iter6traits8iterator8Iterator10advance_by1 %58 = lshr i64 %57, 1 %59 = icmp ult i64 %41, %58 tail call void @llvm.assume(i1 %59) - %60 = getelementptr inbounds i16, ptr %56, i64 %41 + %60 = getelementptr inbounds nuw i16, ptr %56, i64 %41 %61 = load i16, ptr %60, align 2, !noalias !18252, !noundef !4 %62 = zext i16 %61 to i64 %63 = load i64, ptr %21, align 8, !alias.scope !18253, !noalias !18256, !noundef !4 @@ -65563,7 +65563,7 @@ define internal void @_ZN4core4iter6traits8iterator8Iterator3nth17hed79c39e51aed %40 = lshr i64 %39, 1 %41 = icmp ult i64 %9, %40 tail call void @llvm.assume(i1 %41) - %42 = getelementptr inbounds i16, ptr %37, i64 %9 + %42 = getelementptr inbounds nuw i16, ptr %37, i64 %9 %43 = load i16, ptr %42, align 2, !noalias !18325, !noundef !4 %44 = zext i16 %43 to i64 %45 = getelementptr inbounds nuw i8, ptr %1, i64 8 @@ -83549,7 +83549,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br i1 %.not.i.i, label %.critedge.i.i, label %35 35: ; preds = %30 - %36 = getelementptr inbounds { [3 x i64] }, ptr %32, i64 %33 + %36 = getelementptr inbounds nuw { [3 x i64] }, ptr %32, i64 %33 %37 = sub nsw i64 %31, %.sroa.5.0.copyload.i %38 = mul nsw i64 %37, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %36, ptr nonnull align 8 %34, i64 %38, i1 false), !alias.scope !22216, !noalias !22219 @@ -83558,7 +83558,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !22226) %39 = getelementptr inbounds { [4 x i64] }, ptr %22, i64 %.sroa.5.0.copyload.i - %40 = getelementptr inbounds { [4 x i64] }, ptr %22, i64 %33 + %40 = getelementptr inbounds nuw { [4 x i64] }, ptr %22, i64 %33 %41 = shl nsw i64 %37, 5 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %40, ptr nonnull align 8 %39, i64 %41, i1 false), !alias.scope !22229, !noalias !22231 br label %.thread @@ -83699,7 +83699,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [3 x i64] }, ptr %87, i64 %90 + %91 = getelementptr inbounds nuw { [3 x i64] }, ptr %87, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = mul nuw nsw i64 %92, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %88, i64 %93, i1 false), !alias.scope !22256, !noalias !22259 @@ -83708,7 +83708,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !22261) %94 = getelementptr inbounds { [4 x i64] }, ptr %.sroa.06.0.i, i64 %.sroa.726.0.i - %95 = getelementptr inbounds { [4 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %95 = getelementptr inbounds nuw { [4 x i64] }, ptr %.sroa.06.0.i, i64 %90 %96 = shl nuw nsw i64 %92, 5 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %95, ptr nonnull align 8 %94, i64 %96, i1 false), !alias.scope !22264, !noalias !22266 br label %103 @@ -84225,7 +84225,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br i1 %.not.i24.i, label %.critedge.i28.i, label %284 284: ; preds = %276 - %285 = getelementptr inbounds { [3 x i64] }, ptr %281, i64 %282 + %285 = getelementptr inbounds nuw { [3 x i64] }, ptr %281, i64 %282 %286 = sub nsw i64 %279, %.sroa.7.0.i %287 = mul nsw i64 %286, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %285, ptr nonnull align 8 %283, i64 %287, i1 false), !alias.scope !22361, !noalias !22364 @@ -84234,7 +84234,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.24..sroa_idx, i64 32, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !22366) %288 = getelementptr inbounds { [4 x i64] }, ptr %spec.select.i, i64 %.sroa.7.0.i - %289 = getelementptr inbounds { [4 x i64] }, ptr %spec.select.i, i64 %282 + %289 = getelementptr inbounds nuw { [4 x i64] }, ptr %spec.select.i, i64 %282 %290 = shl nsw i64 %286, 5 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %289, ptr nonnull align 8 %288, i64 %290, i1 false), !alias.scope !22369, !noalias !22371 br label %291 @@ -84258,7 +84258,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 297: ; preds = %291 %298 = getelementptr inbounds ptr, ptr %294, i64 %282 - %299 = getelementptr inbounds ptr, ptr %294, i64 %295 + %299 = getelementptr inbounds nuw ptr, ptr %294, i64 %295 %300 = sub nsw i64 %279, %.sroa.7.0.i %301 = shl nsw i64 %300, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %299, ptr nonnull align 8 %298, i64 %301, i1 false), !alias.scope !22373, !noalias !22356 @@ -84427,7 +84427,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %25 - %32 = getelementptr inbounds i64, ptr %27, i64 %28 + %32 = getelementptr inbounds nuw i64, ptr %27, i64 %28 %33 = sub nsw i64 %26, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !22386, !noalias !22389 @@ -84436,7 +84436,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) %36 = getelementptr inbounds { [3 x i64] }, ptr %35, i64 %.sroa.5.0.copyload.i - %37 = getelementptr inbounds { [3 x i64] }, ptr %35, i64 %28 + %37 = getelementptr inbounds nuw { [3 x i64] }, ptr %35, i64 %28 %38 = mul nsw i64 %33, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %37, ptr nonnull align 8 %36, i64 %38, i1 false), !alias.scope !22397, !noalias !22399 br label %.thread @@ -84570,7 +84570,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 88: ; preds = %74 %89 = add nuw nsw i64 %.sroa.726.0.i, 1 - %90 = getelementptr inbounds i64, ptr %85, i64 %89 + %90 = getelementptr inbounds nuw i64, ptr %85, i64 %89 %91 = sub nuw nsw i64 %84, %.sroa.726.0.i %92 = shl nuw nsw i64 %91, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %90, ptr nonnull align 8 %86, i64 %92, i1 false), !alias.scope !22423, !noalias !22418 @@ -84579,7 +84579,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) %94 = getelementptr inbounds { [3 x i64] }, ptr %93, i64 %.sroa.726.0.i - %95 = getelementptr inbounds { [3 x i64] }, ptr %93, i64 %89 + %95 = getelementptr inbounds nuw { [3 x i64] }, ptr %93, i64 %89 %96 = mul nuw nsw i64 %91, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %95, ptr nonnull align 8 %94, i64 %96, i1 false), !alias.scope !22429, !noalias !22431 br label %103 @@ -85075,7 +85075,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %290 282: ; preds = %273 - %283 = getelementptr inbounds i64, ptr %278, i64 %279 + %283 = getelementptr inbounds nuw i64, ptr %278, i64 %279 %284 = sub nsw i64 %276, %.sroa.7.0.i %285 = shl nsw i64 %284, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %283, ptr nonnull align 8 %280, i64 %285, i1 false), !alias.scope !22510, !noalias !22506 @@ -85084,7 +85084,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %15, i64 24, i1 false), !noalias !22513 %287 = getelementptr inbounds { [3 x i64] }, ptr %286, i64 %.sroa.7.0.i - %288 = getelementptr inbounds { [3 x i64] }, ptr %286, i64 %279 + %288 = getelementptr inbounds nuw { [3 x i64] }, ptr %286, i64 %279 %289 = mul nsw i64 %284, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %288, ptr nonnull align 8 %287, i64 %289, i1 false), !alias.scope !22517, !noalias !22519 br label %290 @@ -85102,7 +85102,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 297: ; preds = %290 %298 = getelementptr inbounds ptr, ptr %294, i64 %279 - %299 = getelementptr inbounds ptr, ptr %294, i64 %295 + %299 = getelementptr inbounds nuw ptr, ptr %294, i64 %295 %300 = sub nsw i64 %276, %.sroa.7.0.i %301 = shl nsw i64 %300, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %299, ptr nonnull align 8 %298, i64 %301, i1 false), !alias.scope !22521, !noalias !22506 diff --git a/bench/draco/optimized/sequential_integer_attribute_decoder.cc.ll b/bench/draco/optimized/sequential_integer_attribute_decoder.cc.ll index 3579da43d8b..00f5153584e 100644 --- a/bench/draco/optimized/sequential_integer_attribute_decoder.cc.ll +++ b/bench/draco/optimized/sequential_integer_attribute_decoder.cc.ll @@ -6823,7 +6823,7 @@ _ZNK5draco7VectorDIfLi2EEmiERKS1_.exit.critedge: ; preds = %_ZNK5draco7VectorDI %200 = zext i32 %195 to i64 %201 = add nsw i64 %200, -1 %202 = sdiv i64 %201, 64 - %203 = getelementptr inbounds i64, ptr %193, i64 %202 + %203 = getelementptr inbounds nuw i64, ptr %193, i64 %202 %204 = and i64 %201, -9223372036854775745 %205 = icmp ugt i64 %204, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %205, i64 -8, i64 0 @@ -8504,7 +8504,7 @@ _ZN5draco7IntSqrtEm.exit: ; preds = %.preheader.i, %_ZNK %229 = zext i32 %224 to i64 %230 = add nsw i64 %229, -1 %231 = sdiv i64 %230, 64 - %232 = getelementptr inbounds i64, ptr %222, i64 %231 + %232 = getelementptr inbounds nuw i64, ptr %222, i64 %231 %233 = and i64 %230, -9223372036854775745 %234 = icmp ugt i64 %233, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %234, i64 -8, i64 0 @@ -14312,7 +14312,7 @@ _ZNK5draco7VectorDIfLi2EEmiERKS1_.exit.critedge: ; preds = %_ZNK5draco7VectorDI %199 = zext i32 %194 to i64 %200 = add nsw i64 %199, -1 %201 = sdiv i64 %200, 64 - %202 = getelementptr inbounds i64, ptr %192, i64 %201 + %202 = getelementptr inbounds nuw i64, ptr %192, i64 %201 %203 = and i64 %200, -9223372036854775745 %204 = icmp ugt i64 %203, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %204, i64 -8, i64 0 @@ -15392,7 +15392,7 @@ _ZN5draco7IntSqrtEm.exit: ; preds = %.preheader.i, %_ZNK %228 = zext i32 %223 to i64 %229 = add nsw i64 %228, -1 %230 = sdiv i64 %229, 64 - %231 = getelementptr inbounds i64, ptr %221, i64 %230 + %231 = getelementptr inbounds nuw i64, ptr %221, i64 %230 %232 = and i64 %229, -9223372036854775745 %233 = icmp ugt i64 %232, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %233, i64 -8, i64 0 diff --git a/bench/duckdb/optimized/ub_duckdb_execution_index_art.cpp.ll b/bench/duckdb/optimized/ub_duckdb_execution_index_art.cpp.ll index 5eabcc093e4..d809bed07ad 100644 --- a/bench/duckdb/optimized/ub_duckdb_execution_index_art.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_execution_index_art.cpp.ll @@ -2145,7 +2145,7 @@ sw.epilog: ; preds = %for.inc.i55, %for.i %allocators.i = getelementptr inbounds nuw i8, ptr %art, i64 384 %65 = load ptr, ptr %allocators.i, align 8, !tbaa !24 %sub.i = add nsw i64 %shr.i.i, -1 - %arrayidx.i.i.i = getelementptr inbounds [6 x %"class.duckdb::unique_ptr.67"], ptr %65, i64 0, i64 %sub.i + %arrayidx.i.i.i = getelementptr inbounds nuw [6 x %"class.duckdb::unique_ptr.67"], ptr %65, i64 0, i64 %sub.i %call3.i = tail call noundef nonnull align 8 dereferenceable(224) ptr @_ZNK6duckdb10unique_ptrINS_18FixedSizeAllocatorESt14default_deleteIS1_ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %arrayidx.i.i.i) %agg.tmp.sroa.0.0.copyload = load i64, ptr %node, align 8, !tbaa !35 tail call void @_ZN6duckdb18FixedSizeAllocator4FreeENS_12IndexPointerE(ptr noundef nonnull align 8 dereferenceable(224) %call3.i, i64 %agg.tmp.sroa.0.0.copyload) @@ -3752,33 +3752,37 @@ for.body20.lr.ph: ; preds = %while.end %17 = sub nuw nsw i64 %conv, %child_pos.0.lcssa %xtraiter = and i64 %17, 1 %lcmp.mod.not = icmp eq i64 %xtraiter, 0 - %.pre = add nsw i64 %conv, -1 + %.pre6 = add nsw i64 %conv, -1 br i1 %lcmp.mod.not, label %for.body20.prol.loopexit, label %for.body20.prol for.body20.prol: ; preds = %for.body20.lr.ph - %arrayidx22.prol = getelementptr inbounds [4 x i8], ptr %key, i64 0, i64 %.pre + %arrayidx22.prol = getelementptr inbounds nuw [4 x i8], ptr %key, i64 0, i64 %.pre6 %18 = load i8, ptr %arrayidx22.prol, align 1, !tbaa !14 %arrayidx24.prol = getelementptr inbounds nuw [4 x i8], ptr %key, i64 0, i64 %conv store i8 %18, ptr %arrayidx24.prol, align 1, !tbaa !14 - %arrayidx26.prol = getelementptr inbounds [4 x %"class.duckdb::Node"], ptr %children, i64 0, i64 %.pre + %arrayidx26.prol = getelementptr inbounds nuw [4 x %"class.duckdb::Node"], ptr %children, i64 0, i64 %.pre6 %arrayidx28.prol = getelementptr inbounds nuw [4 x %"class.duckdb::Node"], ptr %children, i64 0, i64 %conv %19 = load i64, ptr %arrayidx26.prol, align 8 store i64 %19, ptr %arrayidx28.prol, align 8 br label %for.body20.prol.loopexit for.body20.prol.loopexit: ; preds = %for.body20.lr.ph, %for.body20.prol - %i14.076.unr = phi i64 [ %.pre, %for.body20.prol ], [ %conv, %for.body20.lr.ph ] - %20 = icmp eq i64 %child_pos.0.lcssa, %.pre + %i14.076.unr = phi i64 [ %.pre6, %for.body20.prol ], [ %conv, %for.body20.lr.ph ] + %20 = icmp eq i64 %child_pos.0.lcssa, %.pre6 br i1 %20, label %for.cond.cleanup19, label %for.body20 -for.cond.cleanup19: ; preds = %for.body20, %for.body20.prol.loopexit, %while.end, %land.rhs.2, %while.body.1, %while.body - %child_pos.0.lcssa81 = phi i64 [ %child_pos.0.lcssa, %while.end ], [ %child_pos.0.lcssa, %for.body20.prol.loopexit ], [ %conv, %land.rhs.2 ], [ 2, %while.body.1 ], [ 1, %while.body ], [ %child_pos.0.lcssa, %for.body20 ] - %arrayidx32 = getelementptr inbounds [4 x i8], ptr %key, i64 0, i64 %child_pos.0.lcssa81 +for.cond.cleanup19.loopexit: ; preds = %for.body20 + %.pre = load i8, ptr %add.ptr9.i.i.i, align 8, !tbaa !56 + br label %for.cond.cleanup19 + +for.cond.cleanup19: ; preds = %for.cond.cleanup19.loopexit, %for.body20.prol.loopexit, %while.end, %land.rhs.2, %while.body.1, %while.body + %21 = phi i8 [ %.pr, %while.end ], [ %.pr, %for.body20.prol.loopexit ], [ 3, %land.rhs.2 ], [ 2, %while.body.1 ], [ 1, %while.body ], [ %.pre, %for.cond.cleanup19.loopexit ] + %child_pos.0.lcssa81 = phi i64 [ %child_pos.0.lcssa, %while.end ], [ %child_pos.0.lcssa, %for.body20.prol.loopexit ], [ %conv, %land.rhs.2 ], [ 2, %while.body.1 ], [ 1, %while.body ], [ %child_pos.0.lcssa, %for.cond.cleanup19.loopexit ] + %arrayidx32 = getelementptr inbounds nuw [4 x i8], ptr %key, i64 0, i64 %child_pos.0.lcssa81 store i8 %byte, ptr %arrayidx32, align 1, !tbaa !14 %children33 = getelementptr inbounds nuw i8, ptr %add.ptr9.i.i.i, i64 8 - %arrayidx34 = getelementptr inbounds [4 x %"class.duckdb::Node"], ptr %children33, i64 0, i64 %child_pos.0.lcssa81 + %arrayidx34 = getelementptr inbounds nuw [4 x %"class.duckdb::Node"], ptr %children33, i64 0, i64 %child_pos.0.lcssa81 store i64 %child.coerce, ptr %arrayidx34, align 8 - %21 = load i8, ptr %add.ptr9.i.i.i, align 8, !tbaa !56 %inc36 = add i8 %21, 1 store i8 %inc36, ptr %add.ptr9.i.i.i, align 8, !tbaa !56 br label %if.end @@ -3802,7 +3806,7 @@ for.body20: ; preds = %for.body20.prol.loo %25 = load i64, ptr %arrayidx26.1, align 8 store i64 %25, ptr %arrayidx26, align 8 %cmp18.1 = icmp ugt i64 %sub.1, %child_pos.0.lcssa - br i1 %cmp18.1, label %for.body20, label %for.cond.cleanup19, !llvm.loop !75 + br i1 %cmp18.1, label %for.body20, label %for.cond.cleanup19.loopexit, !llvm.loop !75 if.else: ; preds = %_ZN6duckdb4Node10RefMutableINS_5Node4EEERT_RKNS_3ARTES0_NS_5NTypeE.exit call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %node4) #25 @@ -35674,7 +35678,7 @@ if.then.i.i.i.i: ; preds = %if.then br i1 %cmp.i.i.i.i.i.i, label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i, label %if.then.i.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i - %add.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %0, i64 %sub + %add.ptr.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %0, i64 %sub tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %incdec.ptr.i.i.i.i, i8 0, i64 %sub.i.i.i.i, i1 false) br label %_ZSt27__uninitialized_default_n_aIPhmhET_S1_T0_RSaIT1_E.exit.i @@ -39377,7 +39381,7 @@ if.end: ; preds = %entry while.cond.preheader: ; preds = %if.end %sub24.i = or disjoint i64 %sub, 1 - %add.ptr.i56.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %sub24.i + %add.ptr.i56.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %sub24.i %add.ptr.i57.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %div2425 br label %while.cond @@ -39410,20 +39414,20 @@ land.rhs.i.i.us: ; preds = %while.body.i.us, %w %__holeIndex.addr.033.i.i.us = phi i64 [ %__parent.034.i.i.us, %while.body.i.i.us ], [ %spec.select.i.us, %while.body.i.us ] %__parent.034.in.i.i.us = add nsw i64 %__holeIndex.addr.033.i.i.us, -1 %__parent.034.i.i.us = sdiv i64 %__parent.034.in.i.i.us, 2 - %add.ptr.i.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__parent.034.i.i.us + %add.ptr.i.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__parent.034.i.i.us %5 = load i64, ptr %add.ptr.i.i.i.us, align 8, !tbaa !35 %cmp.i.i.i.us = icmp slt i64 %5, %1 br i1 %cmp.i.i.i.us, label %while.body.i.i.us, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEEllNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit.us while.body.i.i.us: ; preds = %land.rhs.i.i.us - %add.ptr.i24.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i.us + %add.ptr.i24.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i.us store i64 %5, ptr %add.ptr.i24.i.i.us, align 8, !tbaa !35 %cmp.i58.i.us = icmp sgt i64 %__parent.034.i.i.us, %__parent.0.us br i1 %cmp.i58.i.us, label %land.rhs.i.i.us, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEEllNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit.us, !llvm.loop !579 _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEEllNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit.us: ; preds = %while.body.i.i.us, %land.rhs.i.i.us, %while.cond.us %__holeIndex.addr.0.lcssa.i.i.us = phi i64 [ %__parent.0.us, %while.cond.us ], [ %__holeIndex.addr.033.i.i.us, %land.rhs.i.i.us ], [ %__parent.034.i.i.us, %while.body.i.i.us ] - %add.ptr.i25.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i.us + %add.ptr.i25.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i.us store i64 %1, ptr %add.ptr.i25.i.i.us, align 8, !tbaa !35 %cmp8.not.us = icmp eq i64 %__parent.0.us, 0 %dec.us = add nsw i64 %__parent.0.us, -1 @@ -39473,20 +39477,20 @@ land.rhs.i.i: ; preds = %if.end33.i, %while. %__holeIndex.addr.033.i.i = phi i64 [ %__parent.034.i.i, %while.body.i.i ], [ %__holeIndex.addr.1.i, %if.end33.i ] %__parent.034.in.i.i = add nsw i64 %__holeIndex.addr.033.i.i, -1 %__parent.034.i.i = sdiv i64 %__parent.034.in.i.i, 2 - %add.ptr.i.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__parent.034.i.i + %add.ptr.i.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__parent.034.i.i %11 = load i64, ptr %add.ptr.i.i.i, align 8, !tbaa !35 %cmp.i.i.i = icmp slt i64 %11, %6 br i1 %cmp.i.i.i, label %while.body.i.i, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEEllNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit while.body.i.i: ; preds = %land.rhs.i.i - %add.ptr.i24.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i + %add.ptr.i24.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i store i64 %11, ptr %add.ptr.i24.i.i, align 8, !tbaa !35 %cmp.i58.i = icmp sgt i64 %__parent.034.i.i, %__parent.0 br i1 %cmp.i58.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEEllNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit, !llvm.loop !579 _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEEllNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit: ; preds = %while.body.i.i, %land.rhs.i.i, %if.end33.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end33.i ], [ %__holeIndex.addr.033.i.i, %land.rhs.i.i ], [ %__parent.034.i.i, %while.body.i.i ] - %add.ptr.i25.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i + %add.ptr.i25.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i store i64 %6, ptr %add.ptr.i25.i.i, align 8, !tbaa !35 %cmp8.not = icmp eq i64 %__parent.0, 0 %dec = add nsw i64 %__parent.0, -1 diff --git a/bench/git/optimized/read-cache.ll b/bench/git/optimized/read-cache.ll index a755aaea83c..3b0c505d8f3 100644 --- a/bench/git/optimized/read-cache.ll +++ b/bench/git/optimized/read-cache.ll @@ -891,7 +891,7 @@ while.body.i15.i.i: ; preds = %while.cond.i.i.i, % lor.lhs.false.i.i.i: ; preds = %while.body.i15.i.i %name69.i.i.i = getelementptr inbounds nuw i8, ptr %65, i64 108 - %arrayidx70.i.i.i = getelementptr inbounds [0 x i8], ptr %name69.i.i.i, i64 0, i64 %gepdiff.i.i.i + %arrayidx70.i.i.i = getelementptr inbounds nuw [0 x i8], ptr %name69.i.i.i, i64 0, i64 %gepdiff.i.i.i %67 = load i8, ptr %arrayidx70.i.i.i, align 1 %cmp72.not.i.i.i = icmp eq i8 %67, 47 br i1 %cmp72.not.i.i.i, label %lor.lhs.false74.i.i.i, label %for.cond16.i.i.i.backedge @@ -8274,7 +8274,7 @@ if.then82.i: ; preds = %if.then80.i if.end87.i: ; preds = %if.then82.i, %if.then80.i %name88.i = getelementptr inbounds nuw i8, ptr %call.i.i, i64 108 - %add.ptr90.i = getelementptr inbounds i8, ptr %name88.i, i64 %copy_len.0.i + %add.ptr90.i = getelementptr inbounds nuw i8, ptr %name88.i, i64 %copy_len.0.i %reass.sub = sub i64 %len.0.i, %copy_len.0.i %sub92.i = add i64 %reass.sub, 1 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr90.i, ptr align 1 %name.1.i, i64 %sub92.i, i1 false) @@ -8284,7 +8284,6 @@ if.end87.i: ; preds = %if.then82.i, %if.th %reass.sub10 = sub i64 %sub.ptr.lhs.cast.i, %56 %add94.i = add i64 %reass.sub10, 1 %sub95.i = add i64 %add94.i, %len.0.i - %.pre = load i32, ptr %ce_mode.i, align 4 br label %create_from_disk.exit if.else96.i: ; preds = %if.end37.i @@ -8305,10 +8304,9 @@ if.else96.i: ; preds = %if.end37.i br label %create_from_disk.exit create_from_disk.exit: ; preds = %if.end87.i, %if.else96.i - %60 = phi i32 [ %or11.i148.i, %if.else96.i ], [ %.pre, %if.end87.i ] %storemerge.i = phi i64 [ %and112.i, %if.else96.i ], [ %sub95.i, %if.end87.i ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %cp.i) - %cmp.i10 = icmp eq i32 %60, 16384 + %cmp.i10 = icmp eq i32 %or11.i148.i, 16384 br i1 %cmp.i10, label %if.then.i12, label %set_index_entry.exit if.then.i12: ; preds = %create_from_disk.exit @@ -8316,8 +8314,8 @@ if.then.i12: ; preds = %create_from_disk.ex br label %set_index_entry.exit set_index_entry.exit: ; preds = %create_from_disk.exit, %if.then.i12 - %61 = load ptr, ptr %istate, align 8 - %arrayidx.i = getelementptr inbounds ptr, ptr %61, i64 %indvars.iv + %60 = load ptr, ptr %istate, align 8 + %arrayidx.i = getelementptr inbounds ptr, ptr %60, i64 %indvars.iv store ptr %call.i.i, ptr %arrayidx.i, align 8 call void @add_name_hash(ptr noundef nonnull %istate, ptr noundef nonnull %call.i.i) #28 %add1 = add i64 %storemerge.i, %src_offset.07 diff --git a/bench/glslang/optimized/GlslangToSpv.cpp.ll b/bench/glslang/optimized/GlslangToSpv.cpp.ll index 5bd8113cb2e..d833c1272a5 100644 --- a/bench/glslang/optimized/GlslangToSpv.cpp.ll +++ b/bench/glslang/optimized/GlslangToSpv.cpp.ll @@ -25614,7 +25614,7 @@ define linkonce_odr noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8__deta 37: ; preds = %33, %.loopexit %.0.i17 = phi i64 [ %36, %33 ], [ %7, %.loopexit ] %38 = load ptr, ptr %0, align 8 - %39 = getelementptr inbounds ptr, ptr %38, i64 %.0.i17 + %39 = getelementptr inbounds nuw ptr, ptr %38, i64 %.0.i17 %40 = load ptr, ptr %39, align 8 %.not.i.i18 = icmp eq ptr %40, null br i1 %.not.i.i18, label %43, label %41 @@ -25646,7 +25646,7 @@ define linkonce_odr noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt8__deta 53: ; preds = %46, %43 %54 = phi ptr [ %.pre, %46 ], [ %38, %43 ] - %55 = getelementptr inbounds ptr, ptr %54, i64 %.0.i17 + %55 = getelementptr inbounds nuw ptr, ptr %54, i64 %.0.i17 store ptr %44, ptr %55, align 8 br label %_ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit @@ -25725,7 +25725,7 @@ _ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4 br i1 %.not28, label %31, label %26 26: ; preds = %23 - %27 = getelementptr inbounds ptr, ptr %.0.i, i64 %.02530 + %27 = getelementptr inbounds nuw ptr, ptr %.0.i, i64 %.02530 store ptr %.031, ptr %27, align 8 br label %31 @@ -35744,7 +35744,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt8__det 40: ; preds = %36, %.loopexit %.0.i17 = phi i64 [ %39, %36 ], [ %7, %.loopexit ] %41 = load ptr, ptr %0, align 8 - %42 = getelementptr inbounds ptr, ptr %41, i64 %.0.i17 + %42 = getelementptr inbounds nuw ptr, ptr %41, i64 %.0.i17 %43 = load ptr, ptr %42, align 8 %.not.i.i18 = icmp eq ptr %43, null br i1 %.not.i.i18, label %47, label %44 @@ -35777,7 +35777,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt8__det 57: ; preds = %50, %47 %58 = phi ptr [ %.pre, %50 ], [ %41, %47 ] - %59 = getelementptr inbounds ptr, ptr %58, i64 %.0.i17 + %59 = getelementptr inbounds nuw ptr, ptr %58, i64 %.0.i17 store ptr %48, ptr %59, align 8 br label %_ZNSt10_HashtableIjSt4pairIKjN3spv7Builder12DebugTypeLocEESaIS5_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit @@ -35856,7 +35856,7 @@ _ZNSt10_HashtableIjSt4pairIKjN3spv7Builder12DebugTypeLocEESaIS5_ENSt8__detail10_ br i1 %.not28, label %31, label %26 26: ; preds = %23 - %27 = getelementptr inbounds ptr, ptr %.0.i, i64 %.02530 + %27 = getelementptr inbounds nuw ptr, ptr %.0.i, i64 %.02530 store ptr %.031, ptr %27, align 8 br label %31 @@ -41233,7 +41233,7 @@ _ZNKSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt 53: ; preds = %49, %_ZNKSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m.exit.thread %.0.i12 = phi i64 [ %52, %49 ], [ %41, %_ZNKSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m.exit.thread ] %54 = load ptr, ptr %0, align 8 - %55 = getelementptr inbounds ptr, ptr %54, i64 %.0.i12 + %55 = getelementptr inbounds nuw ptr, ptr %54, i64 %.0.i12 %56 = load ptr, ptr %55, align 8 %.not.i.i13 = icmp eq ptr %56, null br i1 %.not.i.i13, label %60, label %57 @@ -41266,7 +41266,7 @@ _ZNKSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt 70: ; preds = %63, %60 %71 = phi ptr [ %.pre, %63 ], [ %54, %60 ] - %72 = getelementptr inbounds ptr, ptr %71, i64 %.0.i12 + %72 = getelementptr inbounds nuw ptr, ptr %71, i64 %.0.i12 store ptr %61, ptr %72, align 8 br label %73 @@ -59913,7 +59913,7 @@ _ZNKSt10_HashtableIjSt4pairIKjPN7glslang13TIntermSymbolEESaIS5_ENSt8__detail10_S 55: ; preds = %51, %_ZNKSt10_HashtableIjSt4pairIKjPN7glslang13TIntermSymbolEESaIS5_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m.exit.thread %.0.i12 = phi i64 [ %54, %51 ], [ %43, %_ZNKSt10_HashtableIjSt4pairIKjPN7glslang13TIntermSymbolEESaIS5_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS7_18_Mod_range_hashingENS7_20_Default_ranged_hashENS7_20_Prime_rehash_policyENS7_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS1_m.exit.thread ] %56 = load ptr, ptr %0, align 8 - %57 = getelementptr inbounds ptr, ptr %56, i64 %.0.i12 + %57 = getelementptr inbounds nuw ptr, ptr %56, i64 %.0.i12 %58 = load ptr, ptr %57, align 8 %.not.i.i13 = icmp eq ptr %58, null br i1 %.not.i.i13, label %62, label %59 @@ -59946,7 +59946,7 @@ _ZNKSt10_HashtableIjSt4pairIKjPN7glslang13TIntermSymbolEESaIS5_ENSt8__detail10_S 72: ; preds = %65, %62 %73 = phi ptr [ %.pre, %65 ], [ %56, %62 ] - %74 = getelementptr inbounds ptr, ptr %73, i64 %.0.i12 + %74 = getelementptr inbounds nuw ptr, ptr %73, i64 %.0.i12 store ptr %63, ptr %74, align 8 br label %75 @@ -60032,7 +60032,7 @@ _ZNSt10_HashtableIjSt4pairIKjPN7glslang13TIntermSymbolEESaIS5_ENSt8__detail10_Se br i1 %.not28, label %31, label %26 26: ; preds = %23 - %27 = getelementptr inbounds ptr, ptr %.0.i, i64 %.02530 + %27 = getelementptr inbounds nuw ptr, ptr %.0.i, i64 %.02530 store ptr %.031, ptr %27, align 8 br label %31 @@ -60943,7 +60943,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt8__det 37: ; preds = %33, %.loopexit %.0.i17 = phi i64 [ %36, %33 ], [ %7, %.loopexit ] %38 = load ptr, ptr %0, align 8 - %39 = getelementptr inbounds ptr, ptr %38, i64 %.0.i17 + %39 = getelementptr inbounds nuw ptr, ptr %38, i64 %.0.i17 %40 = load ptr, ptr %39, align 8 %.not.i.i18 = icmp eq ptr %40, null br i1 %.not.i.i18, label %43, label %41 @@ -60975,7 +60975,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt8__det 53: ; preds = %46, %43 %54 = phi ptr [ %.pre, %46 ], [ %38, %43 ] - %55 = getelementptr inbounds ptr, ptr %54, i64 %.0.i17 + %55 = getelementptr inbounds nuw ptr, ptr %54, i64 %.0.i17 store ptr %44, ptr %55, align 8 br label %_ZNSt10_HashtableIjSt4pairIKjSt6vectorIPN3spv11InstructionESaIS5_EEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit @@ -61054,7 +61054,7 @@ _ZNSt10_HashtableIjSt4pairIKjSt6vectorIPN3spv11InstructionESaIS5_EEESaIS8_ENSt8_ br i1 %.not28, label %31, label %26 26: ; preds = %23 - %27 = getelementptr inbounds ptr, ptr %.0.i, i64 %.02530 + %27 = getelementptr inbounds nuw ptr, ptr %.0.i, i64 %.02530 store ptr %.031, ptr %27, align 8 br label %31 @@ -61152,7 +61152,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt8__det 37: ; preds = %33, %.loopexit %.0.i17 = phi i64 [ %36, %33 ], [ %7, %.loopexit ] %38 = load ptr, ptr %0, align 8 - %39 = getelementptr inbounds ptr, ptr %38, i64 %.0.i17 + %39 = getelementptr inbounds nuw ptr, ptr %38, i64 %.0.i17 %40 = load ptr, ptr %39, align 8 %.not.i.i18 = icmp eq ptr %40, null br i1 %.not.i.i18, label %43, label %41 @@ -61184,7 +61184,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt8__det 53: ; preds = %46, %43 %54 = phi ptr [ %.pre, %46 ], [ %38, %43 ] - %55 = getelementptr inbounds ptr, ptr %54, i64 %.0.i17 + %55 = getelementptr inbounds nuw ptr, ptr %54, i64 %.0.i17 store ptr %44, ptr %55, align 8 br label %_ZNSt10_HashtableIjSt4pairIKjSt6vectorIN3spv10DecorationESaIS4_EEESaIS7_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit @@ -61263,7 +61263,7 @@ _ZNSt10_HashtableIjSt4pairIKjSt6vectorIN3spv10DecorationESaIS4_EEESaIS7_ENSt8__d br i1 %.not28, label %31, label %26 26: ; preds = %23 - %27 = getelementptr inbounds ptr, ptr %.0.i, i64 %.02530 + %27 = getelementptr inbounds nuw ptr, ptr %.0.i, i64 %.02530 store ptr %.031, ptr %27, align 8 br label %31 diff --git a/bench/glslang/optimized/SpvPostProcess.cpp.ll b/bench/glslang/optimized/SpvPostProcess.cpp.ll index 1fdec4e0c27..1b4e40dde46 100644 --- a/bench/glslang/optimized/SpvPostProcess.cpp.ll +++ b/bench/glslang/optimized/SpvPostProcess.cpp.ll @@ -1911,7 +1911,7 @@ _ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_M br i1 %.not28.i, label %173, label %168 168: ; preds = %165 - %169 = getelementptr inbounds ptr, ptr %.0.i.i, i64 %.02530.i + %169 = getelementptr inbounds nuw ptr, ptr %.0.i.i, i64 %.02530.i store ptr %.031.i, ptr %169, align 8 br label %173 @@ -1947,7 +1947,7 @@ _ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_M 180: ; preds = %_ZNKSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIjEEPNS1_10_Hash_nodeIjLb0EEEmRKT_m.exit.thread.i._crit_edge, %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE.exit %181 = phi ptr [ %.0.i.i, %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE.exit ], [ %.pre291, %_ZNKSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIjEEPNS1_10_Hash_nodeIjLb0EEEmRKT_m.exit.thread.i._crit_edge ] %.0.i14.i = phi i64 [ %179, %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE.exit ], [ %137, %_ZNKSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIjEEPNS1_10_Hash_nodeIjLb0EEEmRKT_m.exit.thread.i._crit_edge ] - %182 = getelementptr inbounds ptr, ptr %181, i64 %.0.i14.i + %182 = getelementptr inbounds nuw ptr, ptr %181, i64 %.0.i14.i %183 = load ptr, ptr %182, align 8 %.not.i.i15.i = icmp eq ptr %183, null br i1 %.not.i.i15.i, label %187, label %184 @@ -1979,7 +1979,7 @@ _ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_M 196: ; preds = %189, %187 %197 = phi ptr [ %.pre.i, %189 ], [ %181, %187 ] - %198 = getelementptr inbounds ptr, ptr %197, i64 %.0.i14.i + %198 = getelementptr inbounds nuw ptr, ptr %197, i64 %.0.i14.i store ptr %24, ptr %198, align 8 br label %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev.exit.i @@ -2202,7 +2202,7 @@ _ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_M br i1 %.not28.i92, label %300, label %295 295: ; preds = %292 - %296 = getelementptr inbounds ptr, ptr %.0.i.i83, i64 %.02530.i87 + %296 = getelementptr inbounds nuw ptr, ptr %.0.i.i83, i64 %.02530.i87 store ptr %.031.i86, ptr %296, align 8 br label %300 @@ -2238,7 +2238,7 @@ _ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_M 307: ; preds = %_ZNKSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIjEEPNS1_10_Hash_nodeIjLb0EEEmRKT_m.exit.thread.i66._crit_edge, %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE.exit93 %308 = phi ptr [ %.0.i.i83, %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE.exit93 ], [ %.pre294, %_ZNKSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIjEEPNS1_10_Hash_nodeIjLb0EEEmRKT_m.exit.thread.i66._crit_edge ] %.0.i14.i67 = phi i64 [ %306, %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE13_M_rehash_auxEmSt17integral_constantIbLb1EE.exit93 ], [ %264, %_ZNKSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE15_M_find_node_trIjEEPNS1_10_Hash_nodeIjLb0EEEmRKT_m.exit.thread.i66._crit_edge ] - %309 = getelementptr inbounds ptr, ptr %308, i64 %.0.i14.i67 + %309 = getelementptr inbounds nuw ptr, ptr %308, i64 %.0.i14.i67 %310 = load ptr, ptr %309, align 8 %.not.i.i15.i68 = icmp eq ptr %310, null br i1 %.not.i.i15.i68, label %314, label %311 @@ -2270,7 +2270,7 @@ _ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_M 323: ; preds = %316, %314 %324 = phi ptr [ %.pre.i75, %316 ], [ %308, %314 ] - %325 = getelementptr inbounds ptr, ptr %324, i64 %.0.i14.i67 + %325 = getelementptr inbounds nuw ptr, ptr %324, i64 %.0.i14.i67 store ptr %24, ptr %325, align 8 br label %_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE12_Scoped_nodeD2Ev.exit.i69 @@ -6116,7 +6116,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt8__det 37: ; preds = %33, %.loopexit %.0.i17 = phi i64 [ %36, %33 ], [ %7, %.loopexit ] %38 = load ptr, ptr %0, align 8 - %39 = getelementptr inbounds ptr, ptr %38, i64 %.0.i17 + %39 = getelementptr inbounds nuw ptr, ptr %38, i64 %.0.i17 %40 = load ptr, ptr %39, align 8 %.not.i.i18 = icmp eq ptr %40, null br i1 %.not.i.i18, label %43, label %41 @@ -6148,7 +6148,7 @@ define linkonce_odr noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt8__det 53: ; preds = %46, %43 %54 = phi ptr [ %.pre, %46 ], [ %38, %43 ] - %55 = getelementptr inbounds ptr, ptr %54, i64 %.0.i17 + %55 = getelementptr inbounds nuw ptr, ptr %54, i64 %.0.i17 store ptr %44, ptr %55, align 8 br label %_ZNSt10_HashtableIjSt4pairIKjSt6vectorIPN3spv11InstructionESaIS5_EEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit @@ -6229,7 +6229,7 @@ _ZNSt10_HashtableIjSt4pairIKjSt6vectorIPN3spv11InstructionESaIS5_EEESaIS8_ENSt8_ br i1 %.not28, label %31, label %26 26: ; preds = %23 - %27 = getelementptr inbounds ptr, ptr %.0.i, i64 %.02530 + %27 = getelementptr inbounds nuw ptr, ptr %.0.i, i64 %.02530 store ptr %.031, ptr %27, align 8 br label %31 diff --git a/bench/hermes/optimized/MD5.cpp.ll b/bench/hermes/optimized/MD5.cpp.ll index 11cc77d7db8..cdf0c613a87 100644 --- a/bench/hermes/optimized/MD5.cpp.ll +++ b/bench/hermes/optimized/MD5.cpp.ll @@ -970,15 +970,16 @@ if.then: ; preds = %entry %arrayidx3 = getelementptr inbounds nuw [64 x i8], ptr %buffer, i64 0, i64 %inc tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %arrayidx3, i8 0, i64 %sub, i1 false) %call5 = tail call noundef ptr @_ZN4llvh3MD54bodyENS_8ArrayRefIhEE(ptr noundef nonnull align 4 dereferenceable(152) %this, ptr nonnull %buffer, i64 64) + %.pre = load i32, ptr %lo, align 4 br label %if.end if.end: ; preds = %if.then, %entry + %1 = phi i32 [ %.pre, %if.then ], [ %0, %entry ] %free.0 = phi i64 [ 64, %if.then ], [ %sub, %entry ] %used.0 = phi i64 [ 0, %if.then ], [ %inc, %entry ] - %arrayidx7 = getelementptr inbounds [64 x i8], ptr %buffer, i64 0, i64 %used.0 + %arrayidx7 = getelementptr inbounds nuw [64 x i8], ptr %buffer, i64 0, i64 %used.0 %sub8 = add nsw i64 %free.0, -8 tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %arrayidx7, i8 0, i64 %sub8, i1 false) - %1 = load i32, ptr %lo, align 4 %shl = shl i32 %1, 3 store i32 %shl, ptr %lo, align 4 %arrayidx11 = getelementptr inbounds nuw i8, ptr %this, i64 80 @@ -1261,15 +1262,16 @@ if.then.i: ; preds = %_ZN4llvh3MD56update %arrayidx3.i = getelementptr inbounds nuw [64 x i8], ptr %buffer30.i, i64 0, i64 %inc.i5 call void @llvm.memset.p0.i64(ptr nonnull align 1 %arrayidx3.i, i8 0, i64 %sub.i7, i1 false) %call5.i = call noundef ptr @_ZN4llvh3MD54bodyENS_8ArrayRefIhEE(ptr noundef nonnull align 4 dereferenceable(152) %Hash, ptr nonnull %buffer30.i, i64 64) + %.pre.i = load i32, ptr %lo.i, align 4 br label %_ZN4llvh3MD55finalERNS0_9MD5ResultE.exit _ZN4llvh3MD55finalERNS0_9MD5ResultE.exit: ; preds = %_ZN4llvh3MD56updateENS_8ArrayRefIhEE.exit, %if.then.i + %3 = phi i32 [ %.pre.i, %if.then.i ], [ %2, %_ZN4llvh3MD56updateENS_8ArrayRefIhEE.exit ] %free.0.i = phi i64 [ 64, %if.then.i ], [ %sub.i7, %_ZN4llvh3MD56updateENS_8ArrayRefIhEE.exit ] %used.0.i = phi i64 [ 0, %if.then.i ], [ %inc.i5, %_ZN4llvh3MD56updateENS_8ArrayRefIhEE.exit ] - %arrayidx7.i = getelementptr inbounds [64 x i8], ptr %buffer30.i, i64 0, i64 %used.0.i + %arrayidx7.i = getelementptr inbounds nuw [64 x i8], ptr %buffer30.i, i64 0, i64 %used.0.i %sub8.i = add nsw i64 %free.0.i, -8 call void @llvm.memset.p0.i64(ptr nonnull align 1 %arrayidx7.i, i8 0, i64 %sub8.i, i1 false) - %3 = load i32, ptr %lo.i, align 4 %shl.i = shl i32 %3, 3 store i32 %shl.i, ptr %lo.i, align 4 %arrayidx11.i = getelementptr inbounds nuw i8, ptr %Hash, i64 80 diff --git a/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll b/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll index 1c3f13dc599..8628c5f1c97 100644 --- a/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll +++ b/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll @@ -801,7 +801,7 @@ _ZN12arrow_buffer6buffer7mutable13MutableBuffer13with_capacity17h599cdfd44654158 64: ; preds = %58 %65 = load ptr, ptr %.sroa.528.0..sroa_idx, align 8, !alias.scope !83, !nonnull !4 %66 = add nsw i64 %38, -1 - %67 = getelementptr inbounds [0 x i8], ptr %65, i64 0, i64 %66 + %67 = getelementptr inbounds nuw [0 x i8], ptr %65, i64 0, i64 %66 %68 = trunc i64 %33 to i8 %69 = and i8 %68, 7 %notmask16.i = shl nsw i8 -1, %69 @@ -14023,7 +14023,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h166974ba8117d7c3E.exit": ; preds = %55 - %66 = getelementptr inbounds i64, ptr %.32.val, i64 %0 + %66 = getelementptr inbounds nuw i64, ptr %.32.val, i64 %0 %67 = load i64, ptr %66, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) store i64 %67, ptr %25, align 8 @@ -14093,7 +14093,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h166974ba8117d7c3E.exit53": ; preds = %81 - %95 = getelementptr inbounds i64, ptr %.val49, i64 %0 + %95 = getelementptr inbounds nuw i64, ptr %.val49, i64 %0 %96 = load i64, ptr %95, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) %97 = getelementptr inbounds nuw i8, ptr %53, i64 8 @@ -14139,7 +14139,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h166974ba8117d7c3E.exit54": ; preds = %100 - %114 = getelementptr inbounds i64, ptr %.val47, i64 %0 + %114 = getelementptr inbounds nuw i64, ptr %.val47, i64 %0 %115 = load i64, ptr %114, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) @@ -14189,7 +14189,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h166974ba8117d7c3E.exit55": ; preds = %117 - %131 = getelementptr inbounds i64, ptr %.val, i64 %0 + %131 = getelementptr inbounds nuw i64, ptr %.val, i64 %0 %132 = load i64, ptr %131, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %47) @@ -14645,7 +14645,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h71a74b3f88162488E.exit": ; preds = %37 - %48 = getelementptr inbounds i64, ptr %.32.val, i64 %0 + %48 = getelementptr inbounds nuw i64, ptr %.32.val, i64 %0 %49 = load i64, ptr %48, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) store i64 %49, ptr %23, align 8 @@ -14792,7 +14792,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h71a74b3f88162488E.exit55": ; preds = %92 - %106 = getelementptr inbounds i64, ptr %.val, i64 %0 + %106 = getelementptr inbounds nuw i64, ptr %.val, i64 %0 %107 = load i64, ptr %106, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %32) @@ -15053,7 +15053,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17hbfda1496c6619f5aE.exit": ; preds = %37 - %48 = getelementptr inbounds i64, ptr %.32.val, i64 %0 + %48 = getelementptr inbounds nuw i64, ptr %.32.val, i64 %0 %49 = load i64, ptr %48, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) store i64 %49, ptr %23, align 8 @@ -15123,7 +15123,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17hbfda1496c6619f5aE.exit58": ; preds = %63 - %77 = getelementptr inbounds i64, ptr %.val54, i64 %0 + %77 = getelementptr inbounds nuw i64, ptr %.val54, i64 %0 %78 = load i64, ptr %77, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) %79 = icmp sgt i64 %78, -1 @@ -15167,7 +15167,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17hbfda1496c6619f5aE.exit59": ; preds = %80 - %94 = getelementptr inbounds i64, ptr %.val52, i64 %0 + %94 = getelementptr inbounds nuw i64, ptr %.val52, i64 %0 %95 = load i64, ptr %94, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) %96 = icmp sgt i64 %95, -1 @@ -15211,7 +15211,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17hbfda1496c6619f5aE.exit61": ; preds = %97 - %111 = getelementptr inbounds i64, ptr %.val, i64 %0 + %111 = getelementptr inbounds nuw i64, ptr %.val, i64 %0 %112 = load i64, ptr %111, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) %113 = icmp sgt i64 %112, -1 @@ -15493,7 +15493,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h30c19f8316bca409E.exit": ; preds = %37 - %48 = getelementptr inbounds i32, ptr %.32.val, i64 %0 + %48 = getelementptr inbounds nuw i32, ptr %.32.val, i64 %0 %49 = load i32, ptr %48, align 4, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) store i32 %49, ptr %23, align 4 @@ -15640,7 +15640,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h30c19f8316bca409E.exit55": ; preds = %92 - %106 = getelementptr inbounds i32, ptr %.val, i64 %0 + %106 = getelementptr inbounds nuw i32, ptr %.val, i64 %0 %107 = load i32, ptr %106, align 4, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) %108 = sext i32 %107 to i64 @@ -15876,7 +15876,7 @@ define internal fastcc noundef zeroext i1 @"_ZN97_$LT$arrow_array..array..primit unreachable "_ZN11arrow_array5array15primitive_array23PrimitiveArray$LT$T$GT$5value17h6b6a63067ee325a1E.exit": ; preds = %11 - %22 = getelementptr inbounds double, ptr %.32.val, i64 %0 + %22 = getelementptr inbounds nuw double, ptr %.32.val, i64 %0 %23 = load double, ptr %22, align 8, !noundef !4 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) store double %23, ptr %7, align 8 diff --git a/bench/jsonnet/optimized/vm.cpp.ll b/bench/jsonnet/optimized/vm.cpp.ll index 85c498c41a0..2cda592b1bd 100644 --- a/bench/jsonnet/optimized/vm.cpp.ll +++ b/bench/jsonnet/optimized/vm.cpp.ll @@ -43522,7 +43522,7 @@ _ZN8nlohmann6detail28json_sax_dom_callback_parserINS_10basic_jsonISt3mapSt6vecto %275 = zext i32 %273 to i64 %276 = add nsw i64 %275, -1 %277 = sdiv i64 %276, 64 - %278 = getelementptr inbounds i64, ptr %274, i64 %277 + %278 = getelementptr inbounds nuw i64, ptr %274, i64 %277 %279 = and i64 %276, -9223372036854775745 %280 = icmp ugt i64 %279, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %280, i64 -8, i64 0 @@ -45798,7 +45798,7 @@ _ZN8nlohmann6detail19json_sax_dom_parserINS_10basic_jsonISt3mapSt6vectorNSt7__cx %281 = zext i32 %279 to i64 %282 = add nsw i64 %281, -1 %283 = sdiv i64 %282, 64 - %284 = getelementptr inbounds i64, ptr %280, i64 %283 + %284 = getelementptr inbounds nuw i64, ptr %280, i64 %283 %285 = and i64 %282, -9223372036854775745 %286 = icmp ugt i64 %285, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %286, i64 -8, i64 0 @@ -47909,7 +47909,7 @@ define linkonce_odr { i8, ptr } @_ZN8nlohmann6detail28json_sax_dom_callback_pars %10 = zext i32 %.sroa.2.0.copyload.i.i to i64 %11 = add nsw i64 %10, -1 %12 = sdiv i64 %11, 64 - %13 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 + %13 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 %14 = and i64 %11, -9223372036854775745 %15 = icmp ugt i64 %14, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %15, i64 -8, i64 0 @@ -48056,7 +48056,7 @@ _ZNSt6vectorIN8nlohmann10basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_ %88 = zext i32 %.sroa.2.0.copyload.i.i12 to i64 %89 = add nsw i64 %88, -1 %90 = sdiv i64 %89, 64 - %91 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 + %91 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 %92 = and i64 %89, -9223372036854775745 %93 = icmp ugt i64 %92, -9223372036854775808 %storemerge.idx.i.i.i.i.i13 = select i1 %93, i64 -8, i64 0 @@ -50001,7 +50001,7 @@ define linkonce_odr { i8, ptr } @_ZN8nlohmann6detail28json_sax_dom_callback_pars %10 = zext i32 %.sroa.2.0.copyload.i.i to i64 %11 = add nsw i64 %10, -1 %12 = sdiv i64 %11, 64 - %13 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 + %13 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 %14 = and i64 %11, -9223372036854775745 %15 = icmp ugt i64 %14, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %15, i64 -8, i64 0 @@ -50148,7 +50148,7 @@ _ZNSt6vectorIN8nlohmann10basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_ %88 = zext i32 %.sroa.2.0.copyload.i.i12 to i64 %89 = add nsw i64 %88, -1 %90 = sdiv i64 %89, 64 - %91 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 + %91 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 %92 = and i64 %89, -9223372036854775745 %93 = icmp ugt i64 %92, -9223372036854775808 %storemerge.idx.i.i.i.i.i13 = select i1 %93, i64 -8, i64 0 @@ -50220,7 +50220,7 @@ define linkonce_odr { i8, ptr } @_ZN8nlohmann6detail28json_sax_dom_callback_pars %10 = zext i32 %.sroa.2.0.copyload.i.i to i64 %11 = add nsw i64 %10, -1 %12 = sdiv i64 %11, 64 - %13 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 + %13 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 %14 = and i64 %11, -9223372036854775745 %15 = icmp ugt i64 %14, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %15, i64 -8, i64 0 @@ -50369,7 +50369,7 @@ _ZNSt6vectorIN8nlohmann10basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_ %89 = zext i32 %.sroa.2.0.copyload.i.i12 to i64 %90 = add nsw i64 %89, -1 %91 = sdiv i64 %90, 64 - %92 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i10, i64 %91 + %92 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i10, i64 %91 %93 = and i64 %90, -9223372036854775745 %94 = icmp ugt i64 %93, -9223372036854775808 %storemerge.idx.i.i.i.i.i13 = select i1 %94, i64 -8, i64 0 @@ -50441,7 +50441,7 @@ define linkonce_odr { i8, ptr } @_ZN8nlohmann6detail28json_sax_dom_callback_pars %10 = zext i32 %.sroa.2.0.copyload.i.i to i64 %11 = add nsw i64 %10, -1 %12 = sdiv i64 %11, 64 - %13 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 + %13 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 %14 = and i64 %11, -9223372036854775745 %15 = icmp ugt i64 %14, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %15, i64 -8, i64 0 @@ -50587,7 +50587,7 @@ _ZNSt6vectorIN8nlohmann10basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_ %87 = zext i32 %.sroa.2.0.copyload.i.i11 to i64 %88 = add nsw i64 %87, -1 %89 = sdiv i64 %88, 64 - %90 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i9, i64 %89 + %90 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i9, i64 %89 %91 = and i64 %88, -9223372036854775745 %92 = icmp ugt i64 %91, -9223372036854775808 %storemerge.idx.i.i.i.i.i12 = select i1 %92, i64 -8, i64 0 @@ -50659,7 +50659,7 @@ define linkonce_odr { i8, ptr } @_ZN8nlohmann6detail28json_sax_dom_callback_pars %10 = zext i32 %.sroa.2.0.copyload.i.i to i64 %11 = add nsw i64 %10, -1 %12 = sdiv i64 %11, 64 - %13 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 + %13 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 %14 = and i64 %11, -9223372036854775745 %15 = icmp ugt i64 %14, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %15, i64 -8, i64 0 @@ -50806,7 +50806,7 @@ _ZNSt6vectorIN8nlohmann10basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_ %88 = zext i32 %.sroa.2.0.copyload.i.i12 to i64 %89 = add nsw i64 %88, -1 %90 = sdiv i64 %89, 64 - %91 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 + %91 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 %92 = and i64 %89, -9223372036854775745 %93 = icmp ugt i64 %92, -9223372036854775808 %storemerge.idx.i.i.i.i.i13 = select i1 %93, i64 -8, i64 0 @@ -50878,7 +50878,7 @@ define linkonce_odr { i8, ptr } @_ZN8nlohmann6detail28json_sax_dom_callback_pars %10 = zext i32 %.sroa.2.0.copyload.i.i to i64 %11 = add nsw i64 %10, -1 %12 = sdiv i64 %11, 64 - %13 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 + %13 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 %14 = and i64 %11, -9223372036854775745 %15 = icmp ugt i64 %14, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %15, i64 -8, i64 0 @@ -51040,7 +51040,7 @@ _ZNSt6vectorIN8nlohmann10basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_ %90 = zext i32 %.sroa.2.0.copyload.i.i12 to i64 %91 = add nsw i64 %90, -1 %92 = sdiv i64 %91, 64 - %93 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i10, i64 %92 + %93 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i10, i64 %92 %94 = and i64 %91, -9223372036854775745 %95 = icmp ugt i64 %94, -9223372036854775808 %storemerge.idx.i.i.i.i.i13 = select i1 %95, i64 -8, i64 0 @@ -51112,7 +51112,7 @@ define linkonce_odr { i8, ptr } @_ZN8nlohmann6detail28json_sax_dom_callback_pars %10 = zext i32 %.sroa.2.0.copyload.i.i to i64 %11 = add nsw i64 %10, -1 %12 = sdiv i64 %11, 64 - %13 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 + %13 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i, i64 %12 %14 = and i64 %11, -9223372036854775745 %15 = icmp ugt i64 %14, -9223372036854775808 %storemerge.idx.i.i.i.i.i = select i1 %15, i64 -8, i64 0 @@ -51259,7 +51259,7 @@ _ZNSt6vectorIN8nlohmann10basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_ %88 = zext i32 %.sroa.2.0.copyload.i.i12 to i64 %89 = add nsw i64 %88, -1 %90 = sdiv i64 %89, 64 - %91 = getelementptr inbounds i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 + %91 = getelementptr inbounds nuw i64, ptr %.sroa.0.0.copyload.i.i10, i64 %90 %92 = and i64 %89, -9223372036854775745 %93 = icmp ugt i64 %92, -9223372036854775808 %storemerge.idx.i.i.i.i.i13 = select i1 %93, i64 -8, i64 0 diff --git a/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll b/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll index b569529bb48..6f343767a99 100644 --- a/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll +++ b/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll @@ -4787,7 +4787,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !235, !noalias !238 @@ -4799,7 +4799,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %14, ptr noundef nonnull align 8 dereferenceable(104) %4, i64 104, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !246) %37 = getelementptr inbounds { [13 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [13 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [13 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 104 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !249, !noalias !251 br label %.thread @@ -4936,7 +4936,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !276, !noalias !279 @@ -4948,7 +4948,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %12, ptr noundef nonnull align 8 dereferenceable(104) %4, i64 104, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !282) %96 = getelementptr inbounds { [13 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [13 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [13 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 104 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !285, !noalias !287 br label %105 @@ -5476,7 +5476,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %303 294: ; preds = %286 - %295 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %291 + %295 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %291 %296 = sub nsw i64 %289, %.sroa.7.0.i %297 = shl nsw i64 %296, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %295, ptr nonnull align 8 %292, i64 %297, i1 false), !alias.scope !376, !noalias !379 @@ -5488,7 +5488,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %8, ptr noundef nonnull align 8 dereferenceable(104) %16, i64 104, i1 false), !noalias !382 tail call void @llvm.experimental.noalias.scope.decl(metadata !383) %300 = getelementptr inbounds { [13 x i64] }, ptr %299, i64 %.sroa.7.0.i - %301 = getelementptr inbounds { [13 x i64] }, ptr %299, i64 %291 + %301 = getelementptr inbounds nuw { [13 x i64] }, ptr %299, i64 %291 %302 = mul nsw i64 %296, 104 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %301, ptr nonnull align 8 %300, i64 %302, i1 false), !alias.scope !386, !noalias !388 br label %303 @@ -5506,7 +5506,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 310: ; preds = %303 %311 = getelementptr inbounds ptr, ptr %307, i64 %291 - %312 = getelementptr inbounds ptr, ptr %307, i64 %308 + %312 = getelementptr inbounds nuw ptr, ptr %307, i64 %308 %313 = sub nsw i64 %289, %.sroa.7.0.i %314 = shl nsw i64 %313, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %312, ptr nonnull align 8 %311, i64 %314, i1 false), !alias.scope !391, !noalias !390 @@ -5669,14 +5669,14 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 27: ; preds = %22 - %28 = getelementptr inbounds { [6 x i64] }, ptr %14, i64 %24 + %28 = getelementptr inbounds nuw { [6 x i64] }, ptr %14, i64 %24 %29 = sub nsw i64 %23, %.sroa.5.0.copyload.i %30 = mul nsw i64 %29, 48 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %28, ptr nonnull align 8 %25, i64 %30, i1 false), !alias.scope !402, !noalias !405 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 8 dereferenceable(48) %2, i64 48, i1 false) %31 = getelementptr inbounds nuw i8, ptr %14, i64 536 %32 = getelementptr inbounds i64, ptr %31, i64 %.sroa.5.0.copyload.i - %33 = getelementptr inbounds i64, ptr %31, i64 %24 + %33 = getelementptr inbounds nuw i64, ptr %31, i64 %24 %34 = shl nsw i64 %29, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %33, ptr nonnull align 8 %32, i64 %34, i1 false), !alias.scope !411, !noalias !414 br label %.thread @@ -5805,14 +5805,14 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 82: ; preds = %70 %83 = add nuw nsw i64 %.sroa.725.0.i, 1 - %84 = getelementptr inbounds { [6 x i64] }, ptr %.sroa.06.0.i, i64 %83 + %84 = getelementptr inbounds nuw { [6 x i64] }, ptr %.sroa.06.0.i, i64 %83 %85 = sub nuw nsw i64 %79, %.sroa.725.0.i %86 = mul nuw nsw i64 %85, 48 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %84, ptr nonnull align 8 %80, i64 %86, i1 false), !alias.scope !438, !noalias !441 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %80, ptr noundef nonnull align 8 dereferenceable(48) %2, i64 48, i1 false) %87 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i, i64 536 %88 = getelementptr inbounds i64, ptr %87, i64 %.sroa.725.0.i - %89 = getelementptr inbounds i64, ptr %87, i64 %83 + %89 = getelementptr inbounds nuw i64, ptr %87, i64 %83 %90 = shl nuw nsw i64 %85, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %89, ptr nonnull align 8 %88, i64 %90, i1 false), !alias.scope !443, !noalias !433 br label %97 @@ -6305,14 +6305,14 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %286 278: ; preds = %270 - %279 = getelementptr inbounds { [6 x i64] }, ptr %spec.select.i, i64 %275 + %279 = getelementptr inbounds nuw { [6 x i64] }, ptr %spec.select.i, i64 %275 %280 = sub nsw i64 %273, %.sroa.7.0.i %281 = mul nsw i64 %280, 48 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %279, ptr nonnull align 8 %276, i64 %281, i1 false), !alias.scope !523, !noalias !526 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %276, ptr noundef nonnull align 8 dereferenceable(48) %12, i64 48, i1 false), !noalias !472 %282 = getelementptr inbounds nuw i8, ptr %spec.select.i, i64 536 %283 = getelementptr inbounds i64, ptr %282, i64 %.sroa.7.0.i - %284 = getelementptr inbounds i64, ptr %282, i64 %275 + %284 = getelementptr inbounds nuw i64, ptr %282, i64 %275 %285 = shl nsw i64 %280, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %284, ptr nonnull align 8 %283, i64 %285, i1 false), !alias.scope !528, !noalias !519 br label %286 @@ -6329,7 +6329,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 293: ; preds = %286 %294 = getelementptr inbounds ptr, ptr %290, i64 %275 - %295 = getelementptr inbounds ptr, ptr %290, i64 %291 + %295 = getelementptr inbounds nuw ptr, ptr %290, i64 %291 %296 = sub nsw i64 %273, %.sroa.7.0.i %297 = shl nsw i64 %296, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %295, ptr nonnull align 8 %294, i64 %297, i1 false), !alias.scope !531, !noalias !519 @@ -6490,7 +6490,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br i1 %.not.i.i, label %.critedge.i.i, label %35 35: ; preds = %30 - %36 = getelementptr inbounds { [3 x i64] }, ptr %32, i64 %33 + %36 = getelementptr inbounds nuw { [3 x i64] }, ptr %32, i64 %33 %37 = sub nsw i64 %31, %.sroa.5.0.copyload.i %38 = mul nsw i64 %37, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %36, ptr nonnull align 8 %34, i64 %38, i1 false), !alias.scope !543, !noalias !546 @@ -6499,7 +6499,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(448) %16, ptr noundef nonnull align 8 dereferenceable(448) %3, i64 448, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !553) %39 = getelementptr inbounds { [56 x i64] }, ptr %22, i64 %.sroa.5.0.copyload.i - %40 = getelementptr inbounds { [56 x i64] }, ptr %22, i64 %33 + %40 = getelementptr inbounds nuw { [56 x i64] }, ptr %22, i64 %33 %41 = mul nsw i64 %37, 448 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %40, ptr nonnull align 8 %39, i64 %41, i1 false), !alias.scope !556, !noalias !558 br label %.thread @@ -6641,7 +6641,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [3 x i64] }, ptr %87, i64 %90 + %91 = getelementptr inbounds nuw { [3 x i64] }, ptr %87, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = mul nuw nsw i64 %92, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %88, i64 %93, i1 false), !alias.scope !583, !noalias !586 @@ -6650,7 +6650,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(448) %13, ptr noundef nonnull align 8 dereferenceable(448) %3, i64 448, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !588) %94 = getelementptr inbounds { [56 x i64] }, ptr %.sroa.06.0.i, i64 %.sroa.726.0.i - %95 = getelementptr inbounds { [56 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %95 = getelementptr inbounds nuw { [56 x i64] }, ptr %.sroa.06.0.i, i64 %90 %96 = mul nuw nsw i64 %92, 448 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %95, ptr nonnull align 8 %94, i64 %96, i1 false), !alias.scope !591, !noalias !593 br label %104 @@ -7170,7 +7170,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br i1 %.not.i24.i, label %.critedge.i28.i, label %286 286: ; preds = %278 - %287 = getelementptr inbounds { [3 x i64] }, ptr %283, i64 %284 + %287 = getelementptr inbounds nuw { [3 x i64] }, ptr %283, i64 %284 %288 = sub nsw i64 %281, %.sroa.7.0.i %289 = mul nsw i64 %288, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %287, ptr nonnull align 8 %285, i64 %289, i1 false), !alias.scope !681, !noalias !684 @@ -7179,7 +7179,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(448) %7, ptr noundef nonnull align 8 dereferenceable(448) %.sroa.6.24..sroa_idx, i64 448, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !686) %290 = getelementptr inbounds { [56 x i64] }, ptr %spec.select.i, i64 %.sroa.7.0.i - %291 = getelementptr inbounds { [56 x i64] }, ptr %spec.select.i, i64 %284 + %291 = getelementptr inbounds nuw { [56 x i64] }, ptr %spec.select.i, i64 %284 %292 = mul nsw i64 %288, 448 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %291, ptr nonnull align 8 %290, i64 %292, i1 false), !alias.scope !689, !noalias !691 br label %293 @@ -7203,7 +7203,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 299: ; preds = %293 %300 = getelementptr inbounds ptr, ptr %296, i64 %284 - %301 = getelementptr inbounds ptr, ptr %296, i64 %297 + %301 = getelementptr inbounds nuw ptr, ptr %296, i64 %297 %302 = sub nsw i64 %281, %.sroa.7.0.i %303 = shl nsw i64 %302, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %301, ptr nonnull align 8 %300, i64 %303, i1 false), !alias.scope !693, !noalias !676 @@ -7373,7 +7373,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !707, !noalias !710 @@ -7385,7 +7385,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(152) %14, ptr noundef nonnull align 8 dereferenceable(152) %4, i64 152, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !718) %37 = getelementptr inbounds { [19 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [19 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [19 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 152 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !721, !noalias !723 br label %.thread @@ -7520,7 +7520,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !748, !noalias !751 @@ -7532,7 +7532,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(152) %12, ptr noundef nonnull align 8 dereferenceable(152) %4, i64 152, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !754) %96 = getelementptr inbounds { [19 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [19 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [19 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 152 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !757, !noalias !759 br label %105 @@ -8043,7 +8043,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %301 292: ; preds = %284 - %293 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %289 + %293 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %289 %294 = sub nsw i64 %287, %.sroa.7.0.i %295 = shl nsw i64 %294, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %293, ptr nonnull align 8 %290, i64 %295, i1 false), !alias.scope !848, !noalias !851 @@ -8055,7 +8055,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(152) %8, ptr noundef nonnull align 8 dereferenceable(152) %16, i64 152, i1 false), !noalias !854 tail call void @llvm.experimental.noalias.scope.decl(metadata !855) %298 = getelementptr inbounds { [19 x i64] }, ptr %297, i64 %.sroa.7.0.i - %299 = getelementptr inbounds { [19 x i64] }, ptr %297, i64 %289 + %299 = getelementptr inbounds nuw { [19 x i64] }, ptr %297, i64 %289 %300 = mul nsw i64 %294, 152 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %299, ptr nonnull align 8 %298, i64 %300, i1 false), !alias.scope !858, !noalias !860 br label %301 @@ -8073,7 +8073,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 308: ; preds = %301 %309 = getelementptr inbounds ptr, ptr %305, i64 %289 - %310 = getelementptr inbounds ptr, ptr %305, i64 %306 + %310 = getelementptr inbounds nuw ptr, ptr %305, i64 %306 %311 = sub nsw i64 %287, %.sroa.7.0.i %312 = shl nsw i64 %311, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %310, ptr nonnull align 8 %309, i64 %312, i1 false), !alias.scope !863, !noalias !862 @@ -8238,7 +8238,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !875, !noalias !878 @@ -8250,7 +8250,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %14, ptr noundef nonnull align 8 dereferenceable(208) %4, i64 208, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !886) %37 = getelementptr inbounds { [26 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [26 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [26 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 208 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !889, !noalias !891 br label %.thread @@ -8385,7 +8385,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !916, !noalias !919 @@ -8397,7 +8397,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %12, ptr noundef nonnull align 8 dereferenceable(208) %4, i64 208, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !922) %96 = getelementptr inbounds { [26 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [26 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [26 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 208 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !925, !noalias !927 br label %105 @@ -8916,7 +8916,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %299 290: ; preds = %282 - %291 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %287 + %291 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %287 %292 = sub nsw i64 %285, %.sroa.7.0.i %293 = shl nsw i64 %292, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %291, ptr nonnull align 8 %288, i64 %293, i1 false), !alias.scope !1017, !noalias !1020 @@ -8928,7 +8928,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(208) %8, ptr noundef nonnull align 8 dereferenceable(208) %16, i64 208, i1 false), !noalias !1023 tail call void @llvm.experimental.noalias.scope.decl(metadata !1024) %296 = getelementptr inbounds { [26 x i64] }, ptr %295, i64 %.sroa.7.0.i - %297 = getelementptr inbounds { [26 x i64] }, ptr %295, i64 %287 + %297 = getelementptr inbounds nuw { [26 x i64] }, ptr %295, i64 %287 %298 = mul nsw i64 %292, 208 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %297, ptr nonnull align 8 %296, i64 %298, i1 false), !alias.scope !1027, !noalias !1029 br label %299 @@ -8946,7 +8946,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 306: ; preds = %299 %307 = getelementptr inbounds ptr, ptr %303, i64 %287 - %308 = getelementptr inbounds ptr, ptr %303, i64 %304 + %308 = getelementptr inbounds nuw ptr, ptr %303, i64 %304 %309 = sub nsw i64 %285, %.sroa.7.0.i %310 = shl nsw i64 %309, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %308, ptr nonnull align 8 %307, i64 %310, i1 false), !alias.scope !1032, !noalias !1031 @@ -9128,7 +9128,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !1045, !noalias !1048 @@ -9140,7 +9140,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1056) %37 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [3 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !1059, !noalias !1061 br label %.thread @@ -9275,7 +9275,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !1086, !noalias !1089 @@ -9287,7 +9287,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1092) %96 = getelementptr inbounds { [3 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [3 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [3 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !1095, !noalias !1097 br label %105 @@ -9806,7 +9806,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %299 290: ; preds = %282 - %291 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %287 + %291 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %287 %292 = sub nsw i64 %285, %.sroa.7.0.i %293 = shl nsw i64 %292, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %291, ptr nonnull align 8 %288, i64 %293, i1 false), !alias.scope !1187, !noalias !1190 @@ -9818,7 +9818,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 24, i1 false), !noalias !1193 tail call void @llvm.experimental.noalias.scope.decl(metadata !1194) %296 = getelementptr inbounds { [3 x i64] }, ptr %295, i64 %.sroa.7.0.i - %297 = getelementptr inbounds { [3 x i64] }, ptr %295, i64 %287 + %297 = getelementptr inbounds nuw { [3 x i64] }, ptr %295, i64 %287 %298 = mul nsw i64 %292, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %297, ptr nonnull align 8 %296, i64 %298, i1 false), !alias.scope !1197, !noalias !1199 br label %299 @@ -9836,7 +9836,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 306: ; preds = %299 %307 = getelementptr inbounds ptr, ptr %303, i64 %287 - %308 = getelementptr inbounds ptr, ptr %303, i64 %304 + %308 = getelementptr inbounds nuw ptr, ptr %303, i64 %304 %309 = sub nsw i64 %285, %.sroa.7.0.i %310 = shl nsw i64 %309, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %308, ptr nonnull align 8 %307, i64 %310, i1 false), !alias.scope !1202, !noalias !1201 @@ -10022,7 +10022,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 32: ; preds = %27 - %33 = getelementptr inbounds { [3 x i64] }, ptr %29, i64 %30 + %33 = getelementptr inbounds nuw { [3 x i64] }, ptr %29, i64 %30 %34 = sub nsw i64 %28, %.sroa.5.0.copyload.i %35 = mul nsw i64 %34, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %33, ptr nonnull align 8 %31, i64 %35, i1 false), !alias.scope !1214, !noalias !1217 @@ -10032,7 +10032,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.06.i.i, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1224) %37 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %30 + %38 = getelementptr inbounds nuw { [3 x i64] }, ptr %36, i64 %30 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %35, i1 false), !alias.scope !1227, !noalias !1229 br label %.thread @@ -10171,7 +10171,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 86: ; preds = %74 %87 = add nuw nsw i64 %.sroa.726.0.i, 1 - %88 = getelementptr inbounds { [3 x i64] }, ptr %84, i64 %87 + %88 = getelementptr inbounds nuw { [3 x i64] }, ptr %84, i64 %87 %89 = sub nuw nsw i64 %83, %.sroa.726.0.i %90 = mul nuw nsw i64 %89, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %88, ptr nonnull align 8 %85, i64 %90, i1 false), !alias.scope !1254, !noalias !1257 @@ -10181,7 +10181,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.06.i35.i, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1259) %92 = getelementptr inbounds { [3 x i64] }, ptr %91, i64 %.sroa.726.0.i - %93 = getelementptr inbounds { [3 x i64] }, ptr %91, i64 %87 + %93 = getelementptr inbounds nuw { [3 x i64] }, ptr %91, i64 %87 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %93, ptr nonnull align 8 %92, i64 %90, i1 false), !alias.scope !1262, !noalias !1264 br label %101 @@ -10695,7 +10695,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %287 280: ; preds = %272 - %281 = getelementptr inbounds { [3 x i64] }, ptr %277, i64 %278 + %281 = getelementptr inbounds nuw { [3 x i64] }, ptr %277, i64 %278 %282 = sub nsw i64 %275, %.sroa.7.0.i %283 = mul nsw i64 %282, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %281, ptr nonnull align 8 %279, i64 %283, i1 false), !alias.scope !1352, !noalias !1355 @@ -10705,7 +10705,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.012.i24.i, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6.24..sroa_idx, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1357) %285 = getelementptr inbounds { [3 x i64] }, ptr %284, i64 %.sroa.7.0.i - %286 = getelementptr inbounds { [3 x i64] }, ptr %284, i64 %278 + %286 = getelementptr inbounds nuw { [3 x i64] }, ptr %284, i64 %278 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %286, ptr nonnull align 8 %285, i64 %283, i1 false), !alias.scope !1360, !noalias !1362 br label %287 @@ -10722,7 +10722,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 294: ; preds = %287 %295 = getelementptr inbounds ptr, ptr %291, i64 %278 - %296 = getelementptr inbounds ptr, ptr %291, i64 %292 + %296 = getelementptr inbounds nuw ptr, ptr %291, i64 %292 %297 = sub nsw i64 %275, %.sroa.7.0.i %298 = shl nsw i64 %297, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %296, ptr nonnull align 8 %295, i64 %298, i1 false), !alias.scope !1364, !noalias !1347 @@ -10879,7 +10879,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 25: ; preds = %21 %26 = getelementptr inbounds { [3 x i64] }, ptr %23, i64 %.sroa.5.0.copyload.i - %27 = getelementptr inbounds { [3 x i64] }, ptr %23, i64 %24 + %27 = getelementptr inbounds nuw { [3 x i64] }, ptr %23, i64 %24 %28 = sub nsw i64 %22, %.sroa.5.0.copyload.i %29 = mul nsw i64 %28, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %27, ptr nonnull align 8 %26, i64 %29, i1 false), !alias.scope !1377, !noalias !1380 @@ -11461,7 +11461,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 242: ; preds = %235 %243 = getelementptr inbounds { [3 x i64] }, ptr %240, i64 %.sroa.7.0.i - %244 = getelementptr inbounds { [3 x i64] }, ptr %240, i64 %241 + %244 = getelementptr inbounds nuw { [3 x i64] }, ptr %240, i64 %241 %245 = sub nsw i64 %238, %.sroa.7.0.i %246 = mul nsw i64 %245, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %244, ptr nonnull align 8 %243, i64 %246, i1 false), !alias.scope !1480, !noalias !1483 @@ -11478,7 +11478,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 253: ; preds = %247 %254 = getelementptr inbounds ptr, ptr %250, i64 %241 - %255 = getelementptr inbounds ptr, ptr %250, i64 %251 + %255 = getelementptr inbounds nuw ptr, ptr %250, i64 %251 %256 = sub nsw i64 %238, %.sroa.7.0.i %257 = shl nsw i64 %256, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %255, ptr nonnull align 8 %254, i64 %257, i1 false), !alias.scope !1485, !noalias !1476 @@ -11624,7 +11624,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 25: ; preds = %21 %26 = getelementptr inbounds { [3 x i64] }, ptr %23, i64 %.sroa.5.0.copyload.i - %27 = getelementptr inbounds { [3 x i64] }, ptr %23, i64 %24 + %27 = getelementptr inbounds nuw { [3 x i64] }, ptr %23, i64 %24 %28 = sub nsw i64 %22, %.sroa.5.0.copyload.i %29 = mul nsw i64 %28, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %27, ptr nonnull align 8 %26, i64 %29, i1 false), !alias.scope !1496, !noalias !1499 @@ -12206,7 +12206,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 242: ; preds = %235 %243 = getelementptr inbounds { [3 x i64] }, ptr %240, i64 %.sroa.7.0.i - %244 = getelementptr inbounds { [3 x i64] }, ptr %240, i64 %241 + %244 = getelementptr inbounds nuw { [3 x i64] }, ptr %240, i64 %241 %245 = sub nsw i64 %238, %.sroa.7.0.i %246 = mul nsw i64 %245, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %244, ptr nonnull align 8 %243, i64 %246, i1 false), !alias.scope !1599, !noalias !1602 @@ -12223,7 +12223,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 253: ; preds = %247 %254 = getelementptr inbounds ptr, ptr %250, i64 %241 - %255 = getelementptr inbounds ptr, ptr %250, i64 %251 + %255 = getelementptr inbounds nuw ptr, ptr %250, i64 %251 %256 = sub nsw i64 %238, %.sroa.7.0.i %257 = shl nsw i64 %256, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %255, ptr nonnull align 8 %254, i64 %257, i1 false), !alias.scope !1604, !noalias !1595 @@ -12385,7 +12385,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 32: ; preds = %27 - %33 = getelementptr inbounds { [3 x i64] }, ptr %29, i64 %30 + %33 = getelementptr inbounds nuw { [3 x i64] }, ptr %29, i64 %30 %34 = sub nsw i64 %28, %.sroa.5.0.copyload.i %35 = mul nsw i64 %34, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %33, ptr nonnull align 8 %31, i64 %35, i1 false), !alias.scope !1616, !noalias !1619 @@ -12395,7 +12395,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.07.i.i, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1626) %37 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %30 + %38 = getelementptr inbounds nuw { [3 x i64] }, ptr %36, i64 %30 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %35, i1 false), !alias.scope !1629, !noalias !1631 br label %.thread @@ -12534,7 +12534,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 86: ; preds = %74 %87 = add nuw nsw i64 %.sroa.726.0.i, 1 - %88 = getelementptr inbounds { [3 x i64] }, ptr %84, i64 %87 + %88 = getelementptr inbounds nuw { [3 x i64] }, ptr %84, i64 %87 %89 = sub nuw nsw i64 %83, %.sroa.726.0.i %90 = mul nuw nsw i64 %89, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %88, ptr nonnull align 8 %85, i64 %90, i1 false), !alias.scope !1656, !noalias !1659 @@ -12544,7 +12544,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.07.i35.i, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1661) %92 = getelementptr inbounds { [3 x i64] }, ptr %91, i64 %.sroa.726.0.i - %93 = getelementptr inbounds { [3 x i64] }, ptr %91, i64 %87 + %93 = getelementptr inbounds nuw { [3 x i64] }, ptr %91, i64 %87 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %93, ptr nonnull align 8 %92, i64 %90, i1 false), !alias.scope !1664, !noalias !1666 br label %101 @@ -13058,7 +13058,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %287 280: ; preds = %272 - %281 = getelementptr inbounds { [3 x i64] }, ptr %277, i64 %278 + %281 = getelementptr inbounds nuw { [3 x i64] }, ptr %277, i64 %278 %282 = sub nsw i64 %275, %.sroa.7.0.i %283 = mul nsw i64 %282, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %281, ptr nonnull align 8 %279, i64 %283, i1 false), !alias.scope !1754, !noalias !1757 @@ -13068,7 +13068,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.013.i24.i, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6.24..sroa_idx, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1759) %285 = getelementptr inbounds { [3 x i64] }, ptr %284, i64 %.sroa.7.0.i - %286 = getelementptr inbounds { [3 x i64] }, ptr %284, i64 %278 + %286 = getelementptr inbounds nuw { [3 x i64] }, ptr %284, i64 %278 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %286, ptr nonnull align 8 %285, i64 %283, i1 false), !alias.scope !1762, !noalias !1764 br label %287 @@ -13085,7 +13085,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 294: ; preds = %287 %295 = getelementptr inbounds ptr, ptr %291, i64 %278 - %296 = getelementptr inbounds ptr, ptr %291, i64 %292 + %296 = getelementptr inbounds nuw ptr, ptr %291, i64 %292 %297 = sub nsw i64 %275, %.sroa.7.0.i %298 = shl nsw i64 %297, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %296, ptr nonnull align 8 %295, i64 %298, i1 false), !alias.scope !1766, !noalias !1749 @@ -13225,7 +13225,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 18: ; preds = %15 %19 = getelementptr inbounds { [2 x i64] }, ptr %7, i64 %.sroa.5.0.copyload.i - %20 = getelementptr inbounds { [2 x i64] }, ptr %7, i64 %17 + %20 = getelementptr inbounds nuw { [2 x i64] }, ptr %7, i64 %17 %21 = sub nsw i64 %16, %.sroa.5.0.copyload.i %22 = shl nsw i64 %21, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %20, ptr nonnull align 8 %19, i64 %22, i1 false), !alias.scope !1779, !noalias !1782 @@ -13589,7 +13589,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hdf4cf478279cd063E.exit.i.i: ; 180: ; preds = %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17hb2c1b4e70d0834dcE.exit.i" %181 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %.sroa.7.0.i - %182 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %179 + %182 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %179 %183 = sub nsw i64 %177, %.sroa.7.0.i %184 = shl nsw i64 %183, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %182, ptr nonnull align 8 %181, i64 %184, i1 false), !alias.scope !1862, !noalias !1865 @@ -13608,7 +13608,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i18.i: 191: ; preds = %_ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i18.i %192 = getelementptr inbounds ptr, ptr %188, i64 %179 - %193 = getelementptr inbounds ptr, ptr %188, i64 %189 + %193 = getelementptr inbounds nuw ptr, ptr %188, i64 %189 %194 = sub nsw i64 %177, %.sroa.7.0.i %195 = shl nsw i64 %194, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %193, ptr nonnull align 8 %192, i64 %195, i1 false), !alias.scope !1868, !noalias !1871 @@ -13810,7 +13810,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !1896, !noalias !1899 @@ -13822,7 +13822,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(168) %14, ptr noundef nonnull align 8 dereferenceable(168) %4, i64 168, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1907) %37 = getelementptr inbounds { [21 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [21 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [21 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 168 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !1910, !noalias !1912 br label %.thread @@ -13959,7 +13959,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !1937, !noalias !1940 @@ -13971,7 +13971,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(168) %12, ptr noundef nonnull align 8 dereferenceable(168) %4, i64 168, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !1943) %96 = getelementptr inbounds { [21 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [21 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [21 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 168 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !1946, !noalias !1948 br label %105 @@ -14499,7 +14499,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %303 294: ; preds = %286 - %295 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %291 + %295 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %291 %296 = sub nsw i64 %289, %.sroa.7.0.i %297 = shl nsw i64 %296, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %295, ptr nonnull align 8 %292, i64 %297, i1 false), !alias.scope !2036, !noalias !2039 @@ -14511,7 +14511,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(168) %8, ptr noundef nonnull align 8 dereferenceable(168) %16, i64 168, i1 false), !noalias !2042 tail call void @llvm.experimental.noalias.scope.decl(metadata !2043) %300 = getelementptr inbounds { [21 x i64] }, ptr %299, i64 %.sroa.7.0.i - %301 = getelementptr inbounds { [21 x i64] }, ptr %299, i64 %291 + %301 = getelementptr inbounds nuw { [21 x i64] }, ptr %299, i64 %291 %302 = mul nsw i64 %296, 168 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %301, ptr nonnull align 8 %300, i64 %302, i1 false), !alias.scope !2046, !noalias !2048 br label %303 @@ -14529,7 +14529,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 310: ; preds = %303 %311 = getelementptr inbounds ptr, ptr %307, i64 %291 - %312 = getelementptr inbounds ptr, ptr %307, i64 %308 + %312 = getelementptr inbounds nuw ptr, ptr %307, i64 %308 %313 = sub nsw i64 %289, %.sroa.7.0.i %314 = shl nsw i64 %313, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %312, ptr nonnull align 8 %311, i64 %314, i1 false), !alias.scope !2051, !noalias !2050 @@ -14678,7 +14678,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hb80d69a4eae4a2a0E.exit.i.i: ; br label %83 21: ; preds = %16 - %22 = getelementptr inbounds { [2 x i64] }, ptr %8, i64 %18 + %22 = getelementptr inbounds nuw { [2 x i64] }, ptr %8, i64 %18 %23 = sub nsw i64 %17, %.sroa.5.0.copyload.i %24 = shl nsw i64 %23, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %22, ptr nonnull align 8 %19, i64 %24, i1 false), !alias.scope !2061, !noalias !2064 @@ -14687,7 +14687,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hb80d69a4eae4a2a0E.exit.i.i: ; store i64 %3, ptr %25, align 8, !alias.scope !2061, !noalias !2064 %26 = getelementptr inbounds nuw i8, ptr %8, i64 184 %27 = getelementptr inbounds i32, ptr %26, i64 %.sroa.5.0.copyload.i - %28 = getelementptr inbounds i32, ptr %26, i64 %18 + %28 = getelementptr inbounds nuw i32, ptr %26, i64 %18 %29 = shl nsw i64 %23, 2 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %28, ptr nonnull align 4 %27, i64 %29, i1 false), !alias.scope !2068, !noalias !2064 br label %83 @@ -14798,7 +14798,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hb80d69a4eae4a2a0E.exit.i29.i: 73: ; preds = %"_ZN5alloc11collections5btree4node208Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h95a51727d37f736cE.exit.i" %74 = add nuw nsw i64 %.sroa.724.0.i, 1 - %75 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %74 + %75 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %74 %76 = sub nuw nsw i64 %70, %.sroa.724.0.i %77 = shl nuw nsw i64 %76, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %75, ptr nonnull align 8 %71, i64 %77, i1 false), !alias.scope !2093, !noalias !2089 @@ -14807,7 +14807,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hb80d69a4eae4a2a0E.exit.i29.i: store i64 %3, ptr %78, align 8, !alias.scope !2093, !noalias !2089 %79 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i, i64 184 %80 = getelementptr inbounds i32, ptr %79, i64 %.sroa.724.0.i - %81 = getelementptr inbounds i32, ptr %79, i64 %74 + %81 = getelementptr inbounds nuw i32, ptr %79, i64 %74 %82 = shl nuw nsw i64 %76, 2 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %81, ptr nonnull align 4 %80, i64 %82, i1 false), !alias.scope !2096, !noalias !2089 br label %87 @@ -15094,7 +15094,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hb80d69a4eae4a2a0E.exit.i23.i: br label %_ZN5alloc11collections5btree4node12slice_insert17hc9ff49b784fb0d2eE.exit.i18.i 215: ; preds = %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h165dd8652737dcf7E.exit.i" - %216 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %212 + %216 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %212 %217 = sub nsw i64 %210, %.sroa.7.0.i %218 = shl nsw i64 %217, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %216, ptr nonnull align 8 %213, i64 %218, i1 false), !alias.scope !2150, !noalias !2147 @@ -15103,7 +15103,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hb80d69a4eae4a2a0E.exit.i23.i: store i64 %.sroa.12.0197, ptr %219, align 8, !alias.scope !2150, !noalias !2147 %220 = getelementptr inbounds nuw i8, ptr %spec.select.i, i64 184 %221 = getelementptr inbounds i32, ptr %220, i64 %.sroa.7.0.i - %222 = getelementptr inbounds i32, ptr %220, i64 %212 + %222 = getelementptr inbounds nuw i32, ptr %220, i64 %212 %223 = shl nsw i64 %217, 2 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %222, ptr nonnull align 4 %221, i64 %223, i1 false), !alias.scope !2153, !noalias !2147 br label %_ZN5alloc11collections5btree4node12slice_insert17hc9ff49b784fb0d2eE.exit.i18.i @@ -15120,7 +15120,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hc9ff49b784fb0d2eE.exit.i18.i: 230: ; preds = %_ZN5alloc11collections5btree4node12slice_insert17hc9ff49b784fb0d2eE.exit.i18.i %231 = getelementptr inbounds ptr, ptr %227, i64 %212 - %232 = getelementptr inbounds ptr, ptr %227, i64 %228 + %232 = getelementptr inbounds nuw ptr, ptr %227, i64 %228 %233 = sub nsw i64 %210, %.sroa.7.0.i %234 = shl nsw i64 %233, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %232, ptr nonnull align 8 %231, i64 %234, i1 false), !alias.scope !2156, !noalias !2147 @@ -15306,7 +15306,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %101 28: ; preds = %22 - %29 = getelementptr inbounds { [2 x i64] }, ptr %14, i64 %24 + %29 = getelementptr inbounds nuw { [2 x i64] }, ptr %14, i64 %24 %30 = sub nsw i64 %23, %.sroa.5.0.copyload.i %31 = shl nsw i64 %30, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %29, ptr nonnull align 8 %25, i64 %31, i1 false), !alias.scope !2179, !noalias !2182 @@ -15315,7 +15315,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec store i64 %3, ptr %32, align 8, !alias.scope !2179, !noalias !2188 %33 = getelementptr inbounds nuw i8, ptr %14, i64 184 %34 = getelementptr inbounds ptr, ptr %33, i64 %.sroa.5.0.copyload.i - %35 = getelementptr inbounds ptr, ptr %33, i64 %24 + %35 = getelementptr inbounds nuw ptr, ptr %33, i64 %24 %36 = shl nsw i64 %30, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %35, ptr nonnull align 8 %34, i64 %36, i1 false), !alias.scope !2189, !noalias !2192 br label %101 @@ -15446,7 +15446,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 88: ; preds = %75 %89 = add nuw nsw i64 %.sroa.725.0.i, 1 - %90 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %89 + %90 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %89 %91 = sub nuw nsw i64 %84, %.sroa.725.0.i %92 = shl nuw nsw i64 %91, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %90, ptr nonnull align 8 %85, i64 %92, i1 false), !alias.scope !2216, !noalias !2219 @@ -15455,7 +15455,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec store i64 %3, ptr %93, align 8, !alias.scope !2216, !noalias !2221 %94 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i, i64 184 %95 = getelementptr inbounds ptr, ptr %94, i64 %.sroa.725.0.i - %96 = getelementptr inbounds ptr, ptr %94, i64 %89 + %96 = getelementptr inbounds nuw ptr, ptr %94, i64 %89 %97 = shl nuw nsw i64 %91, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %96, ptr nonnull align 8 %95, i64 %97, i1 false), !alias.scope !2222, !noalias !2225 br label %105 @@ -15922,7 +15922,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %299 290: ; preds = %281 - %291 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %286 + %291 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %286 %292 = sub nsw i64 %284, %.sroa.7.0.i %293 = shl nsw i64 %292, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %291, ptr nonnull align 8 %287, i64 %293, i1 false), !alias.scope !2299, !noalias !2302 @@ -15931,7 +15931,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec store i64 %154, ptr %294, align 8, !alias.scope !2299, !noalias !2304 %295 = getelementptr inbounds nuw i8, ptr %spec.select.i, i64 184 %296 = getelementptr inbounds ptr, ptr %295, i64 %.sroa.7.0.i - %297 = getelementptr inbounds ptr, ptr %295, i64 %286 + %297 = getelementptr inbounds nuw ptr, ptr %295, i64 %286 %298 = shl nsw i64 %292, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %297, ptr nonnull align 8 %296, i64 %298, i1 false), !alias.scope !2305, !noalias !2308 br label %299 @@ -15948,7 +15948,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 306: ; preds = %299 %307 = getelementptr inbounds ptr, ptr %303, i64 %286 - %308 = getelementptr inbounds ptr, ptr %303, i64 %304 + %308 = getelementptr inbounds nuw ptr, ptr %303, i64 %304 %309 = sub nsw i64 %284, %.sroa.7.0.i %310 = shl nsw i64 %309, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %308, ptr nonnull align 8 %307, i64 %310, i1 false), !alias.scope !2309, !noalias !2308 @@ -16094,7 +16094,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !2320, !noalias !2323 @@ -16106,7 +16106,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !2331) %37 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [3 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [3 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !2334, !noalias !2336 br label %.thread @@ -16241,7 +16241,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !2361, !noalias !2364 @@ -16253,7 +16253,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !2367) %96 = getelementptr inbounds { [3 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [3 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [3 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !2370, !noalias !2372 br label %105 @@ -16772,7 +16772,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %299 290: ; preds = %282 - %291 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %287 + %291 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %287 %292 = sub nsw i64 %285, %.sroa.7.0.i %293 = shl nsw i64 %292, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %291, ptr nonnull align 8 %288, i64 %293, i1 false), !alias.scope !2462, !noalias !2465 @@ -16784,7 +16784,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 24, i1 false), !noalias !2468 tail call void @llvm.experimental.noalias.scope.decl(metadata !2469) %296 = getelementptr inbounds { [3 x i64] }, ptr %295, i64 %.sroa.7.0.i - %297 = getelementptr inbounds { [3 x i64] }, ptr %295, i64 %287 + %297 = getelementptr inbounds nuw { [3 x i64] }, ptr %295, i64 %287 %298 = mul nsw i64 %292, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %297, ptr nonnull align 8 %296, i64 %298, i1 false), !alias.scope !2472, !noalias !2474 br label %299 @@ -16802,7 +16802,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 306: ; preds = %299 %307 = getelementptr inbounds ptr, ptr %303, i64 %287 - %308 = getelementptr inbounds ptr, ptr %303, i64 %304 + %308 = getelementptr inbounds nuw ptr, ptr %303, i64 %304 %309 = sub nsw i64 %285, %.sroa.7.0.i %310 = shl nsw i64 %309, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %308, ptr nonnull align 8 %307, i64 %310, i1 false), !alias.scope !2477, !noalias !2476 @@ -16984,7 +16984,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !2489, !noalias !2492 @@ -16996,7 +16996,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %14, ptr noundef nonnull align 8 dereferenceable(104) %4, i64 104, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !2500) %37 = getelementptr inbounds { [13 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [13 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [13 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 104 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !2503, !noalias !2505 br label %.thread @@ -17131,7 +17131,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !2530, !noalias !2533 @@ -17143,7 +17143,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %12, ptr noundef nonnull align 8 dereferenceable(104) %4, i64 104, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !2536) %96 = getelementptr inbounds { [13 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [13 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [13 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 104 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !2539, !noalias !2541 br label %105 @@ -17662,7 +17662,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %299 290: ; preds = %282 - %291 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %287 + %291 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %287 %292 = sub nsw i64 %285, %.sroa.7.0.i %293 = shl nsw i64 %292, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %291, ptr nonnull align 8 %288, i64 %293, i1 false), !alias.scope !2631, !noalias !2634 @@ -17674,7 +17674,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %8, ptr noundef nonnull align 8 dereferenceable(104) %16, i64 104, i1 false), !noalias !2637 tail call void @llvm.experimental.noalias.scope.decl(metadata !2638) %296 = getelementptr inbounds { [13 x i64] }, ptr %295, i64 %.sroa.7.0.i - %297 = getelementptr inbounds { [13 x i64] }, ptr %295, i64 %287 + %297 = getelementptr inbounds nuw { [13 x i64] }, ptr %295, i64 %287 %298 = mul nsw i64 %292, 104 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %297, ptr nonnull align 8 %296, i64 %298, i1 false), !alias.scope !2641, !noalias !2643 br label %299 @@ -17692,7 +17692,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 306: ; preds = %299 %307 = getelementptr inbounds ptr, ptr %303, i64 %287 - %308 = getelementptr inbounds ptr, ptr %303, i64 %304 + %308 = getelementptr inbounds nuw ptr, ptr %303, i64 %304 %309 = sub nsw i64 %285, %.sroa.7.0.i %310 = shl nsw i64 %309, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %308, ptr nonnull align 8 %307, i64 %310, i1 false), !alias.scope !2646, !noalias !2645 @@ -17874,7 +17874,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 31: ; preds = %26 - %32 = getelementptr inbounds { [2 x i64] }, ptr %18, i64 %28 + %32 = getelementptr inbounds nuw { [2 x i64] }, ptr %18, i64 %28 %33 = sub nsw i64 %27, %.sroa.5.0.copyload.i %34 = shl nsw i64 %33, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %32, ptr nonnull align 8 %29, i64 %34, i1 false), !alias.scope !2658, !noalias !2661 @@ -17886,7 +17886,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(272) %14, ptr noundef nonnull align 8 dereferenceable(272) %4, i64 272, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !2669) %37 = getelementptr inbounds { [34 x i64] }, ptr %36, i64 %.sroa.5.0.copyload.i - %38 = getelementptr inbounds { [34 x i64] }, ptr %36, i64 %28 + %38 = getelementptr inbounds nuw { [34 x i64] }, ptr %36, i64 %28 %39 = mul nsw i64 %33, 272 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %38, ptr nonnull align 8 %37, i64 %39, i1 false), !alias.scope !2672, !noalias !2674 br label %.thread @@ -18021,7 +18021,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %91 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = shl nuw nsw i64 %92, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %87, i64 %93, i1 false), !alias.scope !2699, !noalias !2702 @@ -18033,7 +18033,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(272) %12, ptr noundef nonnull align 8 dereferenceable(272) %4, i64 272, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !2705) %96 = getelementptr inbounds { [34 x i64] }, ptr %95, i64 %.sroa.726.0.i - %97 = getelementptr inbounds { [34 x i64] }, ptr %95, i64 %90 + %97 = getelementptr inbounds nuw { [34 x i64] }, ptr %95, i64 %90 %98 = mul nuw nsw i64 %92, 272 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %97, ptr nonnull align 8 %96, i64 %98, i1 false), !alias.scope !2708, !noalias !2710 br label %105 @@ -18552,7 +18552,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %299 290: ; preds = %282 - %291 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %287 + %291 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %287 %292 = sub nsw i64 %285, %.sroa.7.0.i %293 = shl nsw i64 %292, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %291, ptr nonnull align 8 %288, i64 %293, i1 false), !alias.scope !2800, !noalias !2803 @@ -18564,7 +18564,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(272) %8, ptr noundef nonnull align 8 dereferenceable(272) %16, i64 272, i1 false), !noalias !2806 tail call void @llvm.experimental.noalias.scope.decl(metadata !2807) %296 = getelementptr inbounds { [34 x i64] }, ptr %295, i64 %.sroa.7.0.i - %297 = getelementptr inbounds { [34 x i64] }, ptr %295, i64 %287 + %297 = getelementptr inbounds nuw { [34 x i64] }, ptr %295, i64 %287 %298 = mul nsw i64 %292, 272 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %297, ptr nonnull align 8 %296, i64 %298, i1 false), !alias.scope !2810, !noalias !2812 br label %299 @@ -18582,7 +18582,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 306: ; preds = %299 %307 = getelementptr inbounds ptr, ptr %303, i64 %287 - %308 = getelementptr inbounds ptr, ptr %303, i64 %304 + %308 = getelementptr inbounds nuw ptr, ptr %303, i64 %304 %309 = sub nsw i64 %285, %.sroa.7.0.i %310 = shl nsw i64 %309, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %308, ptr nonnull align 8 %307, i64 %310, i1 false), !alias.scope !2815, !noalias !2814 @@ -18741,7 +18741,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i.i: ; br label %83 21: ; preds = %16 - %22 = getelementptr inbounds { [2 x i64] }, ptr %8, i64 %18 + %22 = getelementptr inbounds nuw { [2 x i64] }, ptr %8, i64 %18 %23 = sub nsw i64 %17, %.sroa.5.0.copyload.i %24 = shl nsw i64 %23, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %22, ptr nonnull align 8 %19, i64 %24, i1 false), !alias.scope !2826, !noalias !2829 @@ -18750,7 +18750,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i.i: ; store i64 %3, ptr %25, align 8, !alias.scope !2826, !noalias !2835 %26 = getelementptr inbounds nuw i8, ptr %8, i64 184 %27 = getelementptr inbounds i64, ptr %26, i64 %.sroa.5.0.copyload.i - %28 = getelementptr inbounds i64, ptr %26, i64 %18 + %28 = getelementptr inbounds nuw i64, ptr %26, i64 %18 %29 = shl nsw i64 %23, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %28, ptr nonnull align 8 %27, i64 %29, i1 false), !alias.scope !2836, !noalias !2839 br label %83 @@ -18861,7 +18861,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i29.i: 73: ; preds = %"_ZN5alloc11collections5btree4node208Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h510e88665e50045bE.exit.i" %74 = add nuw nsw i64 %.sroa.724.0.i, 1 - %75 = getelementptr inbounds { [2 x i64] }, ptr %.sroa.06.0.i, i64 %74 + %75 = getelementptr inbounds nuw { [2 x i64] }, ptr %.sroa.06.0.i, i64 %74 %76 = sub nuw nsw i64 %70, %.sroa.724.0.i %77 = shl nuw nsw i64 %76, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %75, ptr nonnull align 8 %71, i64 %77, i1 false), !alias.scope !2863, !noalias !2866 @@ -18870,7 +18870,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i29.i: store i64 %3, ptr %78, align 8, !alias.scope !2863, !noalias !2868 %79 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i, i64 184 %80 = getelementptr inbounds i64, ptr %79, i64 %.sroa.724.0.i - %81 = getelementptr inbounds i64, ptr %79, i64 %74 + %81 = getelementptr inbounds nuw i64, ptr %79, i64 %74 %82 = shl nuw nsw i64 %76, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %81, ptr nonnull align 8 %80, i64 %82, i1 false), !alias.scope !2869, !noalias !2872 br label %87 @@ -19157,7 +19157,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i23.i: br label %_ZN5alloc11collections5btree4node12slice_insert17hf1c5f4ef14f34918E.exit.i18.i 215: ; preds = %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h11f88398e9b1d4e6E.exit.i" - %216 = getelementptr inbounds { [2 x i64] }, ptr %spec.select.i, i64 %212 + %216 = getelementptr inbounds nuw { [2 x i64] }, ptr %spec.select.i, i64 %212 %217 = sub nsw i64 %210, %.sroa.7.0.i %218 = shl nsw i64 %217, 4 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %216, ptr nonnull align 8 %213, i64 %218, i1 false), !alias.scope !2930, !noalias !2933 @@ -19166,7 +19166,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h27bb6e35c2120148E.exit.i23.i: store i64 %.sroa.8.0191, ptr %219, align 8, !alias.scope !2930, !noalias !2935 %220 = getelementptr inbounds nuw i8, ptr %spec.select.i, i64 184 %221 = getelementptr inbounds i64, ptr %220, i64 %.sroa.7.0.i - %222 = getelementptr inbounds i64, ptr %220, i64 %212 + %222 = getelementptr inbounds nuw i64, ptr %220, i64 %212 %223 = shl nsw i64 %217, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %222, ptr nonnull align 8 %221, i64 %223, i1 false), !alias.scope !2936, !noalias !2939 br label %_ZN5alloc11collections5btree4node12slice_insert17hf1c5f4ef14f34918E.exit.i18.i @@ -19183,7 +19183,7 @@ _ZN5alloc11collections5btree4node12slice_insert17hf1c5f4ef14f34918E.exit.i18.i: 230: ; preds = %_ZN5alloc11collections5btree4node12slice_insert17hf1c5f4ef14f34918E.exit.i18.i %231 = getelementptr inbounds ptr, ptr %227, i64 %212 - %232 = getelementptr inbounds ptr, ptr %227, i64 %228 + %232 = getelementptr inbounds nuw ptr, ptr %227, i64 %228 %233 = sub nsw i64 %210, %.sroa.7.0.i %234 = shl nsw i64 %233, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %232, ptr nonnull align 8 %231, i64 %234, i1 false), !alias.scope !2940, !noalias !2939 @@ -19376,14 +19376,14 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %.thread 28: ; preds = %22 - %29 = getelementptr inbounds { [3 x i64] }, ptr %24, i64 %25 + %29 = getelementptr inbounds nuw { [3 x i64] }, ptr %24, i64 %25 %30 = sub nsw i64 %23, %.sroa.5.0.copyload.i %31 = mul nsw i64 %30, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %29, ptr nonnull align 8 %26, i64 %31, i1 false), !alias.scope !2967, !noalias !2970 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false) %32 = getelementptr inbounds nuw i8, ptr %14, i64 272 %33 = getelementptr inbounds ptr, ptr %32, i64 %.sroa.5.0.copyload.i - %34 = getelementptr inbounds ptr, ptr %32, i64 %25 + %34 = getelementptr inbounds nuw ptr, ptr %32, i64 %25 %35 = shl nsw i64 %30, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %34, ptr nonnull align 8 %33, i64 %35, i1 false), !alias.scope !2977, !noalias !2980 br label %.thread @@ -19514,14 +19514,14 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 85: ; preds = %71 %86 = add nuw nsw i64 %.sroa.725.0.i, 1 - %87 = getelementptr inbounds { [3 x i64] }, ptr %82, i64 %86 + %87 = getelementptr inbounds nuw { [3 x i64] }, ptr %82, i64 %86 %88 = sub nuw nsw i64 %81, %.sroa.725.0.i %89 = mul nuw nsw i64 %88, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %87, ptr nonnull align 8 %83, i64 %89, i1 false), !alias.scope !3007, !noalias !3010 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %83, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false) %90 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i, i64 272 %91 = getelementptr inbounds ptr, ptr %90, i64 %.sroa.725.0.i - %92 = getelementptr inbounds ptr, ptr %90, i64 %86 + %92 = getelementptr inbounds nuw ptr, ptr %90, i64 %86 %93 = shl nuw nsw i64 %88, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %92, ptr nonnull align 8 %91, i64 %93, i1 false), !alias.scope !3012, !noalias !3015 br label %100 @@ -20012,14 +20012,14 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br label %287 279: ; preds = %270 - %280 = getelementptr inbounds { [3 x i64] }, ptr %275, i64 %276 + %280 = getelementptr inbounds nuw { [3 x i64] }, ptr %275, i64 %276 %281 = sub nsw i64 %273, %.sroa.7.0.i %282 = mul nsw i64 %281, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %280, ptr nonnull align 8 %277, i64 %282, i1 false), !alias.scope !3103, !noalias !3106 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %277, ptr noundef nonnull align 8 dereferenceable(24) %12, i64 24, i1 false), !noalias !3048 %283 = getelementptr inbounds nuw i8, ptr %spec.select.i, i64 272 %284 = getelementptr inbounds ptr, ptr %283, i64 %.sroa.7.0.i - %285 = getelementptr inbounds ptr, ptr %283, i64 %276 + %285 = getelementptr inbounds nuw ptr, ptr %283, i64 %276 %286 = shl nsw i64 %281, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %285, ptr nonnull align 8 %284, i64 %286, i1 false), !alias.scope !3108, !noalias !3111 br label %287 @@ -20036,7 +20036,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 294: ; preds = %287 %295 = getelementptr inbounds ptr, ptr %291, i64 %276 - %296 = getelementptr inbounds ptr, ptr %291, i64 %292 + %296 = getelementptr inbounds nuw ptr, ptr %291, i64 %292 %297 = sub nsw i64 %273, %.sroa.7.0.i %298 = shl nsw i64 %297, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %296, ptr nonnull align 8 %295, i64 %298, i1 false), !alias.scope !3113, !noalias !3116 @@ -20169,7 +20169,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 18: ; preds = %14 %19 = getelementptr inbounds i8, ptr %16, i64 %.sroa.5.0.copyload.i - %20 = getelementptr inbounds i8, ptr %16, i64 %17 + %20 = getelementptr inbounds nuw i8, ptr %16, i64 %17 %21 = sub nsw i64 %15, %.sroa.5.0.copyload.i tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %20, ptr nonnull align 1 %19, i64 %21, i1 false), !alias.scope !3124, !noalias !3127 br label %60 @@ -20517,7 +20517,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h6fa7b7a63553ab26E.exit.i.i: ; 169: ; preds = %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17hbf645d45b62579f3E.exit.i" %170 = getelementptr inbounds i8, ptr %167, i64 %.sroa.7.0.i - %171 = getelementptr inbounds i8, ptr %167, i64 %168 + %171 = getelementptr inbounds nuw i8, ptr %167, i64 %168 %172 = sub nsw i64 %165, %.sroa.7.0.i tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %171, ptr nonnull align 1 %170, i64 %172, i1 false), !alias.scope !3193, !noalias !3190 br label %_ZN5alloc11collections5btree4node12slice_insert17h9d0e3d4408fd7651E.exit.i18.i @@ -20533,7 +20533,7 @@ _ZN5alloc11collections5btree4node12slice_insert17h9d0e3d4408fd7651E.exit.i18.i: 178: ; preds = %_ZN5alloc11collections5btree4node12slice_insert17h9d0e3d4408fd7651E.exit.i18.i %179 = getelementptr inbounds ptr, ptr %175, i64 %168 - %180 = getelementptr inbounds ptr, ptr %175, i64 %176 + %180 = getelementptr inbounds nuw ptr, ptr %175, i64 %176 %181 = sub nsw i64 %165, %.sroa.7.0.i %182 = shl nsw i64 %181, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %180, ptr nonnull align 8 %179, i64 %182, i1 false), !alias.scope !3196, !noalias !3190 @@ -21562,12 +21562,12 @@ define internal fastcc void @"_ZN5alloc11collections5btree4node29BalancingContex %22 = trunc nuw i64 %20 to i16 store i16 %22, ptr %11, align 2 %23 = add nsw i64 %1, -1 - %24 = getelementptr inbounds { [2 x i64] }, ptr %10, i64 %23 + %24 = getelementptr inbounds nuw { [2 x i64] }, ptr %10, i64 %23 %25 = load ptr, ptr %24, align 8, !nonnull !14, !align !226, !noundef !14 %26 = getelementptr inbounds nuw i8, ptr %24, i64 8 %27 = load i64, ptr %26, align 8, !noundef !14 %28 = getelementptr inbounds nuw i8, ptr %10, i64 184 - %29 = getelementptr inbounds { [3 x i64] }, ptr %28, i64 %23 + %29 = getelementptr inbounds nuw { [3 x i64] }, ptr %28, i64 %23 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %29, i64 24, i1 false) %.val61 = load ptr, ptr %0, align 8, !nonnull !14, !noundef !14 %30 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -21705,12 +21705,12 @@ define internal fastcc void @"_ZN5alloc11collections5btree4node29BalancingContex %22 = trunc nuw i64 %20 to i16 store i16 %22, ptr %11, align 2 %23 = add nsw i64 %1, -1 - %24 = getelementptr inbounds { [2 x i64] }, ptr %10, i64 %23 + %24 = getelementptr inbounds nuw { [2 x i64] }, ptr %10, i64 %23 %25 = load ptr, ptr %24, align 8, !nonnull !14, !align !226, !noundef !14 %26 = getelementptr inbounds nuw i8, ptr %24, i64 8 %27 = load i64, ptr %26, align 8, !noundef !14 %28 = getelementptr inbounds nuw i8, ptr %10, i64 184 - %29 = getelementptr inbounds { [21 x i64] }, ptr %28, i64 %23 + %29 = getelementptr inbounds nuw { [21 x i64] }, ptr %28, i64 %23 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(168) %3, ptr noundef nonnull align 8 dereferenceable(168) %29, i64 168, i1 false) %.val61 = load ptr, ptr %0, align 8, !nonnull !14, !noundef !14 %30 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -21848,12 +21848,12 @@ define internal fastcc void @"_ZN5alloc11collections5btree4node29BalancingContex %22 = trunc nuw i64 %20 to i16 store i16 %22, ptr %11, align 2 %23 = add nsw i64 %1, -1 - %24 = getelementptr inbounds { [2 x i64] }, ptr %10, i64 %23 + %24 = getelementptr inbounds nuw { [2 x i64] }, ptr %10, i64 %23 %25 = load ptr, ptr %24, align 8, !nonnull !14, !align !226, !noundef !14 %26 = getelementptr inbounds nuw i8, ptr %24, i64 8 %27 = load i64, ptr %26, align 8, !noundef !14 %28 = getelementptr inbounds nuw i8, ptr %10, i64 176 - %29 = getelementptr inbounds { [34 x i64] }, ptr %28, i64 %23 + %29 = getelementptr inbounds nuw { [34 x i64] }, ptr %28, i64 %23 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(272) %3, ptr noundef nonnull align 8 dereferenceable(272) %29, i64 272, i1 false) %.val61 = load ptr, ptr %0, align 8, !nonnull !14, !noundef !14 %30 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -25860,7 +25860,7 @@ define hidden void @"_ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc.. tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %172, ptr nonnull readonly align 8 %171, i64 %173, i1 false), !alias.scope !3738, !noalias !3723 %174 = getelementptr inbounds nuw i8, ptr %108, i64 456 %175 = add nuw nsw i64 %148, 1 - %176 = getelementptr inbounds ptr, ptr %174, i64 %175 + %176 = getelementptr inbounds nuw ptr, ptr %174, i64 %175 %177 = getelementptr i8, ptr %176, i64 8 %178 = shl nsw i64 %159, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %176, ptr align 8 %177, i64 %178, i1 false), !alias.scope !3742, !noalias !3723 @@ -26394,7 +26394,7 @@ define hidden void @"_ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc.. tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %172, ptr nonnull readonly align 8 %171, i64 %173, i1 false), !alias.scope !3799, !noalias !3784 %174 = getelementptr inbounds nuw i8, ptr %108, i64 2040 %175 = add nuw nsw i64 %148, 1 - %176 = getelementptr inbounds ptr, ptr %174, i64 %175 + %176 = getelementptr inbounds nuw ptr, ptr %174, i64 %175 %177 = getelementptr i8, ptr %176, i64 8 %178 = shl nsw i64 %159, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %176, ptr align 8 %177, i64 %178, i1 false), !alias.scope !3803, !noalias !3784 @@ -26930,7 +26930,7 @@ define hidden void @"_ZN5alloc11collections5btree6remove259_$LT$impl$u20$alloc.. tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %172, ptr nonnull readonly align 8 %171, i64 %173, i1 false), !alias.scope !3860, !noalias !3845 %174 = getelementptr inbounds nuw i8, ptr %108, i64 3184 %175 = add nuw nsw i64 %148, 1 - %176 = getelementptr inbounds ptr, ptr %174, i64 %175 + %176 = getelementptr inbounds nuw ptr, ptr %174, i64 %175 %177 = getelementptr i8, ptr %176, i64 8 %178 = shl nsw i64 %159, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %176, ptr align 8 %177, i64 %178, i1 false), !alias.scope !3864, !noalias !3845 diff --git a/bench/llama.cpp/optimized/llama.cpp.ll b/bench/llama.cpp/optimized/llama.cpp.ll index 40283614fb5..c618baf92c5 100644 --- a/bench/llama.cpp/optimized/llama.cpp.ll +++ b/bench/llama.cpp/optimized/llama.cpp.ll @@ -53313,7 +53313,7 @@ if.then: ; preds = %while.body br i1 %tobool14.not, label %if.end22, label %if.then15 if.then15: ; preds = %if.then - %arrayidx16 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %__bbegin_bkt.021 + %arrayidx16 = getelementptr inbounds nuw ptr, ptr %retval.0.i, i64 %__bbegin_bkt.021 store ptr %__p.022, ptr %arrayidx16, align 8 br label %if.end22 @@ -73993,7 +73993,7 @@ if.then: ; preds = %while.body br i1 %tobool14.not, label %if.end22, label %if.then15 if.then15: ; preds = %if.then - %arrayidx16 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %__bbegin_bkt.021 + %arrayidx16 = getelementptr inbounds nuw ptr, ptr %retval.0.i, i64 %__bbegin_bkt.021 store ptr %__p.022, ptr %arrayidx16, align 8 br label %if.end22 @@ -76547,8 +76547,8 @@ while.body.i.i.i.i: ; preds = %if.end.split.i.i.i, %add.ptr2.val.i.i.i.i = load float, ptr %3, align 4 %cmp.i.i.i.i.i.i = fcmp ogt float %add.ptr.val.i.i.i.i, %add.ptr2.val.i.i.i.i %spec.select.i.i.i.i = select i1 %cmp.i.i.i.i.i.i, i64 %sub1.i.i.i.i, i64 %mul.i.i.i.i - %add.ptr3.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i.i - %add.ptr4.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i.i + %add.ptr3.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i.i + %add.ptr4.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr4.i.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr3.i.i.i.i, i64 12, i1 false) %cmp.i.i.i.i = icmp slt i64 %spec.select.i.i.i.i, %div.i.i.i.i1517 br i1 %cmp.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i, !llvm.loop !459 @@ -76565,8 +76565,8 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, if.then9.i.i.i.i: ; preds = %while.end.i.i.i.i %add10.i.i.i.i = shl nsw i64 %__holeIndex.addr.0.lcssa.i.i.i.i, 1 %sub12.i.i.i.i = or disjoint i64 %add10.i.i.i.i, 1 - %add.ptr13.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i.i - %add.ptr14.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i + %add.ptr13.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i.i + %add.ptr14.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr14.i.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr13.i.i.i.i, i64 12, i1 false) br label %if.end16.i.i.i.i @@ -76585,14 +76585,14 @@ land.rhs.i.i.i.i.i: ; preds = %while.body.i.i.i.i. %__holeIndex.addr.06.i.i.i.i.i = phi i64 [ %__holeIndex.addr.1.i.i.i.i, %land.rhs.lr.ph.i.i.i.i.i ], [ %__parent.07.i.i.i.i.i, %while.body.i.i.i.i.i ] %__parent.07.in.i.i.i.i.i = add nsw i64 %__holeIndex.addr.06.i.i.i.i.i, -1 %__parent.07.i.i.i.i.i = sdiv i64 %__parent.07.in.i.i.i.i.i, 2 - %add.ptr.i.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i.i + %add.ptr.i.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i.i %5 = getelementptr i8, ptr %add.ptr.i.i.i.i.i, i64 4 %add.ptr.val.i.i.i.i.i = load float, ptr %5, align 4 %cmp.i.i.i.i.i.i.i = fcmp ogt float %add.ptr.val.i.i.i.i.i, %4 br i1 %cmp.i.i.i.i.i.i.i, label %while.body.i.i.i.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i.i" while.body.i.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i - %add.ptr2.i.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i.i + %add.ptr2.i.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr2.i.i.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i.i.i.i.i, i64 12, i1 false) %cmp.i.i.i.i.i = icmp sgt i64 %__parent.07.i.i.i.i.i, %div17.i.i.i br i1 %cmp.i.i.i.i.i, label %land.rhs.i.i.i.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i.i", !llvm.loop !460 @@ -76600,7 +76600,7 @@ while.body.i.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i "_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i.i": ; preds = %while.body.i.i.i.i.i, %land.rhs.i.i.i.i.i, %if.end16.i.i.i.i %__holeIndex.addr.0.lcssa.i.i.i.i.i = phi i64 [ %__holeIndex.addr.1.i.i.i.i, %if.end16.i.i.i.i ], [ %__holeIndex.addr.06.i.i.i.i.i, %land.rhs.i.i.i.i.i ], [ %__parent.07.i.i.i.i.i, %while.body.i.i.i.i.i ] %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i.i = trunc i64 %__value.sroa.0.0.copyload10.i.i.i to i32 - %add.ptr5.i.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i.i + %add.ptr5.i.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i.i store i32 %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i.i, ptr %add.ptr5.i.i.i.i.i, align 4 %add.ptr5.sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr5.i.i.i.i.i, i64 4 store i32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i.i.i.i, ptr %add.ptr5.sroa_idx.i.i.i.i.i, align 4 @@ -76611,14 +76611,14 @@ while.body.i.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i if.end8.split.lr.ph.i.i.i: ; preds = %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i.i" %sub12.i52.i.i.i = or disjoint i64 %sub.i.i.i, 1 - %add.ptr13.i53.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %sub12.i52.i.i.i - %add.ptr14.i54.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %div7.i.i.i.i + %add.ptr13.i53.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %sub12.i52.i.i.i + %add.ptr14.i54.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %div7.i.i.i.i br label %if.end8.split.i.i.i if.end8.split.i.i.i: ; preds = %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i.i", %if.end8.split.lr.ph.i.i.i %__parent.03.i.i.i = phi i64 [ %div17.i.i.i, %if.end8.split.lr.ph.i.i.i ], [ %dec.i.i.i, %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i.i" ] %dec.i.i.i = add nsw i64 %__parent.03.i.i.i, -1 - %add.ptr13.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %dec.i.i.i + %add.ptr13.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %dec.i.i.i %__value.sroa.0.0.copyload14.i.i.i = load i64, ptr %add.ptr13.i.i.i, align 4 %__value.sroa.2.0.add.ptr.sroa_idx15.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr13.i.i.i, i64 8 %__value.sroa.2.0.copyload16.i.i.i = load float, ptr %__value.sroa.2.0.add.ptr.sroa_idx15.i.i.i, align 4 @@ -76636,8 +76636,8 @@ while.body.i55.i.i.i: ; preds = %if.end8.split.i.i.i %add.ptr2.val.i61.i.i.i = load float, ptr %7, align 4 %cmp.i.i.i62.i.i.i = fcmp ogt float %add.ptr.val.i60.i.i.i, %add.ptr2.val.i61.i.i.i %spec.select.i63.i.i.i = select i1 %cmp.i.i.i62.i.i.i, i64 %sub1.i59.i.i.i, i64 %mul.i58.i.i.i - %add.ptr3.i64.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %spec.select.i63.i.i.i - %add.ptr4.i65.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i56.i.i.i + %add.ptr3.i64.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %spec.select.i63.i.i.i + %add.ptr4.i65.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i56.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr4.i65.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr3.i64.i.i.i, i64 12, i1 false) %cmp.i66.i.i.i = icmp slt i64 %spec.select.i63.i.i.i, %div.i.i.i.i1517 br i1 %cmp.i66.i.i.i, label %while.body.i55.i.i.i, label %while.end.i21.i.i.i, !llvm.loop !459 @@ -76667,14 +76667,14 @@ land.rhs.i.i36.i.i.i: ; preds = %while.body.i.i43.i. %__holeIndex.addr.06.i.i37.i.i.i = phi i64 [ %__holeIndex.addr.1.i26.i.i.i, %land.rhs.lr.ph.i.i35.i.i.i ], [ %__parent.07.i.i39.i.i.i, %while.body.i.i43.i.i.i ] %__parent.07.in.i.i38.i.i.i = add nsw i64 %__holeIndex.addr.06.i.i37.i.i.i, -1 %__parent.07.i.i39.i.i.i = sdiv i64 %__parent.07.in.i.i38.i.i.i, 2 - %add.ptr.i.i40.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i39.i.i.i + %add.ptr.i.i40.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i39.i.i.i %9 = getelementptr i8, ptr %add.ptr.i.i40.i.i.i, i64 4 %add.ptr.val.i.i41.i.i.i = load float, ptr %9, align 4 %cmp.i.i.i.i42.i.i.i = fcmp ogt float %add.ptr.val.i.i41.i.i.i, %8 br i1 %cmp.i.i.i.i42.i.i.i, label %while.body.i.i43.i.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i.i" while.body.i.i43.i.i.i: ; preds = %land.rhs.i.i36.i.i.i - %add.ptr2.i.i44.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i37.i.i.i + %add.ptr2.i.i44.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i37.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr2.i.i44.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i.i40.i.i.i, i64 12, i1 false) %cmp.i.i45.not.i.i.i = icmp slt i64 %__parent.07.i.i39.i.i.i, %__parent.03.i.i.i br i1 %cmp.i.i45.not.i.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i.i", label %land.rhs.i.i36.i.i.i, !llvm.loop !460 @@ -76682,7 +76682,7 @@ while.body.i.i43.i.i.i: ; preds = %land.rhs.i.i36.i.i. "_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i.i": ; preds = %while.body.i.i43.i.i.i, %land.rhs.i.i36.i.i.i, %if.end16.i25.i.i.i %__holeIndex.addr.0.lcssa.i.i30.i.i.i = phi i64 [ %__holeIndex.addr.1.i26.i.i.i, %if.end16.i25.i.i.i ], [ %__holeIndex.addr.06.i.i37.i.i.i, %land.rhs.i.i36.i.i.i ], [ %__parent.07.i.i39.i.i.i, %while.body.i.i43.i.i.i ] %__value.sroa.0.sroa.0.0.extract.trunc.i.i31.i.i.i = trunc i64 %__value.sroa.0.0.copyload14.i.i.i to i32 - %add.ptr5.i.i32.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i30.i.i.i + %add.ptr5.i.i32.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i30.i.i.i store i32 %__value.sroa.0.sroa.0.0.extract.trunc.i.i31.i.i.i, ptr %add.ptr5.i.i32.i.i.i, align 4 %add.ptr5.sroa_idx.i.i33.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr5.i.i32.i.i.i, i64 4 store i32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i28.i.i.i, ptr %add.ptr5.sroa_idx.i.i33.i.i.i, align 4 @@ -76720,8 +76720,8 @@ while.body.i.i.i52.i: ; preds = %while.body.i.i, %wh %add.ptr2.val.i.i.i58.i = load float, ptr %11, align 4 %cmp.i.i.i.i.i59.i = fcmp ogt float %add.ptr.val.i.i.i57.i, %add.ptr2.val.i.i.i58.i %spec.select.i.i.i60.i = select i1 %cmp.i.i.i.i.i59.i, i64 %sub1.i.i.i56.i, i64 %mul.i.i.i55.i - %add.ptr3.i.i.i61.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i60.i - %add.ptr4.i.i.i62.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i53.i + %add.ptr3.i.i.i61.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i60.i + %add.ptr4.i.i.i62.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i53.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr4.i.i.i62.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr3.i.i.i61.i, i64 12, i1 false) %cmp.i.i.i63.i = icmp slt i64 %spec.select.i.i.i60.i, %div.i.i.i11.i br i1 %cmp.i.i.i63.i, label %while.body.i.i.i52.i, label %while.end.i.i.i13.i, !llvm.loop !459 @@ -76741,8 +76741,8 @@ land.lhs.true.i.i.i.i: ; preds = %while.end.i.i.i13.i if.end16.i.thread.i.i45.i: ; preds = %land.lhs.true.i.i.i.i %add10.i.i.i46.i = shl nsw i64 %__holeIndex.addr.0.lcssa.i.i.i14.i, 1 %sub12.i.i.i47.i = or disjoint i64 %add10.i.i.i46.i, 1 - %add.ptr13.i.i.i48.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i47.i - %add.ptr14.i.i.i49.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i14.i + %add.ptr13.i.i.i48.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i47.i + %add.ptr14.i.i.i49.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i14.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr14.i.i.i49.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr13.i.i.i48.i, i64 12, i1 false) %__value.sroa.0.sroa.2.0.extract.shift.i.i2.i.i50.i = lshr i64 %__value.sroa.0.0.copyload.i.i4.i, 32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i3.i.i51.i = trunc nuw i64 %__value.sroa.0.sroa.2.0.extract.shift.i.i2.i.i50.i to i32 @@ -76764,14 +76764,14 @@ land.rhs.i.i.i.i24.i: ; preds = %while.body.i.i.i.i3 %__holeIndex.addr.06.i.i.i.i25.i = phi i64 [ %__holeIndex.addr.1.i5.i.i23.i, %land.rhs.lr.ph.i.i.i.i21.i ], [ %__parent.07.i.i.i.i27.i, %while.body.i.i.i.i39.i ] %__parent.07.in.i.i.i.i26.i = add nsw i64 %__holeIndex.addr.06.i.i.i.i25.i, -1 %__parent.07.i.i.i.i27.i = sdiv i64 %__parent.07.in.i.i.i.i26.i, 2 - %add.ptr.i.i.i.i28.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i27.i + %add.ptr.i.i.i.i28.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i27.i %13 = getelementptr i8, ptr %add.ptr.i.i.i.i28.i, i64 4 %add.ptr.val.i.i.i.i29.i = load float, ptr %13, align 4 %cmp.i.i.i.i.i.i30.i = fcmp ogt float %add.ptr.val.i.i.i.i29.i, %12 br i1 %cmp.i.i.i.i.i.i30.i, label %while.body.i.i.i.i39.i, label %"_ZSt10__pop_heapIP16llama_token_dataN9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_S7_S7_RT0_.exit.i31.i" while.body.i.i.i.i39.i: ; preds = %land.rhs.i.i.i.i24.i - %add.ptr2.i.i.i.i40.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i25.i + %add.ptr2.i.i.i.i40.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i25.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr2.i.i.i.i40.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i.i.i.i28.i, i64 12, i1 false) %cmp.i.i.i.i41.i = icmp sgt i64 %__holeIndex.addr.06.i.i.i.i25.i, 2 br i1 %cmp.i.i.i.i41.i, label %land.rhs.i.i.i.i24.i, label %"_ZSt10__pop_heapIP16llama_token_dataN9__gnu_cxx5__ops15_Iter_comp_iterIZ20llama_sample_softmaxE3$_0EEEvT_S7_S7_RT0_.exit.i31.i", !llvm.loop !460 @@ -76780,7 +76780,7 @@ while.body.i.i.i.i39.i: ; preds = %land.rhs.i.i.i.i24. %__value.sroa.0.sroa.2.0.extract.trunc.i.i6.i.i32.i = phi i32 [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i.i.i19.i, %if.end16.i.i.i17.i ], [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i7.i.i22.i, %land.rhs.i.i.i.i24.i ], [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i7.i.i22.i, %while.body.i.i.i.i39.i ] %__holeIndex.addr.0.lcssa.i.i.i.i33.i = phi i64 [ 0, %if.end16.i.i.i17.i ], [ %__parent.07.i.i.i.i27.i, %while.body.i.i.i.i39.i ], [ %__holeIndex.addr.06.i.i.i.i25.i, %land.rhs.i.i.i.i24.i ] %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i34.i = trunc i64 %__value.sroa.0.0.copyload.i.i4.i to i32 - %add.ptr5.i.i.i.i35.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i33.i + %add.ptr5.i.i.i.i35.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i33.i store i32 %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i34.i, ptr %add.ptr5.i.i.i.i35.i, align 4 %add.ptr5.sroa_idx.i.i.i.i36.i = getelementptr inbounds nuw i8, ptr %add.ptr5.i.i.i.i35.i, i64 4 store i32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i6.i.i32.i, ptr %add.ptr5.sroa_idx.i.i.i.i36.i, align 4 @@ -77108,8 +77108,8 @@ while.body.i.i.i: ; preds = %if.end.split.i.i, % %add.ptr2.val.i.i.i = load float, ptr %1, align 4 %cmp.i.i.i.i.i = fcmp ogt float %add.ptr.val.i.i.i, %add.ptr2.val.i.i.i %spec.select.i.i.i = select i1 %cmp.i.i.i.i.i, i64 %sub1.i.i.i, i64 %mul.i.i.i - %add.ptr3.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i - %add.ptr4.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i + %add.ptr3.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i + %add.ptr4.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr4.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr3.i.i.i, i64 12, i1 false) %cmp.i.i.i = icmp slt i64 %spec.select.i.i.i, %div.i.i.i br i1 %cmp.i.i.i, label %while.body.i.i.i, label %while.end.i.i.i, !llvm.loop !471 @@ -77126,8 +77126,8 @@ while.end.i.i.i: ; preds = %while.body.i.i.i, % if.then9.i.i.i: ; preds = %while.end.i.i.i %add10.i.i.i = shl nsw i64 %__holeIndex.addr.0.lcssa.i.i.i, 1 %sub12.i.i.i = or disjoint i64 %add10.i.i.i, 1 - %add.ptr13.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i - %add.ptr14.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i + %add.ptr13.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i + %add.ptr14.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr14.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr13.i.i.i, i64 12, i1 false) br label %if.end16.i.i.i @@ -77146,14 +77146,14 @@ land.rhs.i.i.i.i: ; preds = %while.body.i.i.i.i, %__holeIndex.addr.06.i.i.i.i = phi i64 [ %__holeIndex.addr.1.i.i.i, %land.rhs.lr.ph.i.i.i.i ], [ %__parent.07.i.i.i.i, %while.body.i.i.i.i ] %__parent.07.in.i.i.i.i = add nsw i64 %__holeIndex.addr.06.i.i.i.i, -1 %__parent.07.i.i.i.i = sdiv i64 %__parent.07.in.i.i.i.i, 2 - %add.ptr.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i + %add.ptr.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i %3 = getelementptr i8, ptr %add.ptr.i.i.i.i, i64 4 %add.ptr.val.i.i.i.i = load float, ptr %3, align 4 %cmp.i.i.i.i.i.i = fcmp ogt float %add.ptr.val.i.i.i.i, %2 br i1 %cmp.i.i.i.i.i.i, label %while.body.i.i.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i" while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i - %add.ptr2.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i + %add.ptr2.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr2.i.i.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i.i.i.i, i64 12, i1 false) %cmp.i.i.i.i = icmp sgt i64 %__parent.07.i.i.i.i, %div17.i.i br i1 %cmp.i.i.i.i, label %land.rhs.i.i.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i", !llvm.loop !472 @@ -77161,7 +77161,7 @@ while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i "_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i": ; preds = %while.body.i.i.i.i, %land.rhs.i.i.i.i, %if.end16.i.i.i %__holeIndex.addr.0.lcssa.i.i.i.i = phi i64 [ %__holeIndex.addr.1.i.i.i, %if.end16.i.i.i ], [ %__parent.07.i.i.i.i, %while.body.i.i.i.i ], [ %__holeIndex.addr.06.i.i.i.i, %land.rhs.i.i.i.i ] %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i = trunc i64 %__value.sroa.0.0.copyload10.i.i to i32 - %add.ptr5.i.i.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i + %add.ptr5.i.i.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i store i32 %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i, ptr %add.ptr5.i.i.i.i, align 4 %add.ptr5.sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr5.i.i.i.i, i64 4 store i32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i.i.i, ptr %add.ptr5.sroa_idx.i.i.i.i, align 4 @@ -77172,14 +77172,14 @@ while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i if.end8.split.lr.ph.i.i: ; preds = %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit.i.i" %sub12.i52.i.i = or disjoint i64 %sub.i.i, 1 - %add.ptr13.i53.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %sub12.i52.i.i - %add.ptr14.i54.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %div7.i.i.i + %add.ptr13.i53.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %sub12.i52.i.i + %add.ptr14.i54.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %div7.i.i.i br label %if.end8.split.i.i if.end8.split.i.i: ; preds = %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i", %if.end8.split.lr.ph.i.i %__parent.03.i.i = phi i64 [ %div17.i.i, %if.end8.split.lr.ph.i.i ], [ %dec.i.i, %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i" ] %dec.i.i = add nsw i64 %__parent.03.i.i, -1 - %add.ptr13.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %dec.i.i + %add.ptr13.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %dec.i.i %__value.sroa.0.0.copyload14.i.i = load i64, ptr %add.ptr13.i.i, align 4 %__value.sroa.2.0.add.ptr.sroa_idx15.i.i = getelementptr inbounds nuw i8, ptr %add.ptr13.i.i, i64 8 %__value.sroa.2.0.copyload16.i.i = load float, ptr %__value.sroa.2.0.add.ptr.sroa_idx15.i.i, align 4 @@ -77197,8 +77197,8 @@ while.body.i55.i.i: ; preds = %if.end8.split.i.i, %add.ptr2.val.i61.i.i = load float, ptr %5, align 4 %cmp.i.i.i62.i.i = fcmp ogt float %add.ptr.val.i60.i.i, %add.ptr2.val.i61.i.i %spec.select.i63.i.i = select i1 %cmp.i.i.i62.i.i, i64 %sub1.i59.i.i, i64 %mul.i58.i.i - %add.ptr3.i64.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %spec.select.i63.i.i - %add.ptr4.i65.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i56.i.i + %add.ptr3.i64.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %spec.select.i63.i.i + %add.ptr4.i65.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i56.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr4.i65.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr3.i64.i.i, i64 12, i1 false) %cmp.i66.i.i = icmp slt i64 %spec.select.i63.i.i, %div.i.i.i br i1 %cmp.i66.i.i, label %while.body.i55.i.i, label %while.end.i21.i.i, !llvm.loop !471 @@ -77228,14 +77228,14 @@ land.rhs.i.i36.i.i: ; preds = %while.body.i.i43.i. %__holeIndex.addr.06.i.i37.i.i = phi i64 [ %__holeIndex.addr.1.i26.i.i, %land.rhs.lr.ph.i.i35.i.i ], [ %__parent.07.i.i39.i.i, %while.body.i.i43.i.i ] %__parent.07.in.i.i38.i.i = add nsw i64 %__holeIndex.addr.06.i.i37.i.i, -1 %__parent.07.i.i39.i.i = sdiv i64 %__parent.07.in.i.i38.i.i, 2 - %add.ptr.i.i40.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i39.i.i + %add.ptr.i.i40.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i39.i.i %7 = getelementptr i8, ptr %add.ptr.i.i40.i.i, i64 4 %add.ptr.val.i.i41.i.i = load float, ptr %7, align 4 %cmp.i.i.i.i42.i.i = fcmp ogt float %add.ptr.val.i.i41.i.i, %6 br i1 %cmp.i.i.i.i42.i.i, label %while.body.i.i43.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i" while.body.i.i43.i.i: ; preds = %land.rhs.i.i36.i.i - %add.ptr2.i.i44.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i37.i.i + %add.ptr2.i.i44.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i37.i.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr2.i.i44.i.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i.i40.i.i, i64 12, i1 false) %cmp.i.i45.not.i.i = icmp slt i64 %__parent.07.i.i39.i.i, %__parent.03.i.i br i1 %cmp.i.i45.not.i.i, label %"_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i", label %land.rhs.i.i36.i.i, !llvm.loop !472 @@ -77243,7 +77243,7 @@ while.body.i.i43.i.i: ; preds = %land.rhs.i.i36.i.i "_ZSt13__adjust_heapIP16llama_token_datalS0_N9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_T0_S8_T1_T2_.exit67.i.i": ; preds = %while.body.i.i43.i.i, %land.rhs.i.i36.i.i, %if.end16.i25.i.i %__holeIndex.addr.0.lcssa.i.i30.i.i = phi i64 [ %__holeIndex.addr.1.i26.i.i, %if.end16.i25.i.i ], [ %__parent.07.i.i39.i.i, %while.body.i.i43.i.i ], [ %__holeIndex.addr.06.i.i37.i.i, %land.rhs.i.i36.i.i ] %__value.sroa.0.sroa.0.0.extract.trunc.i.i31.i.i = trunc i64 %__value.sroa.0.0.copyload14.i.i to i32 - %add.ptr5.i.i32.i.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i30.i.i + %add.ptr5.i.i32.i.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i30.i.i store i32 %__value.sroa.0.sroa.0.0.extract.trunc.i.i31.i.i, ptr %add.ptr5.i.i32.i.i, align 4 %add.ptr5.sroa_idx.i.i33.i.i = getelementptr inbounds nuw i8, ptr %add.ptr5.i.i32.i.i, i64 4 store i32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i28.i.i, ptr %add.ptr5.sroa_idx.i.i33.i.i, align 4 @@ -77268,8 +77268,8 @@ for.body.lr.ph.i: ; preds = %"_ZSt11__make_heapI %cmp8.i.i4161.i = icmp eq i64 %sub6.i.i.i, 0 %or.cond62.i = select i1 %cmp5.i.i19.i, i1 %cmp8.i.i4161.i, i1 false %sub12.i.i43.i = or disjoint i64 %sub6.i.i.i, 1 - %add.ptr13.i.i44.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %sub12.i.i43.i - %add.ptr14.i.i45.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %div7.i.i40.i + %add.ptr13.i.i44.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %sub12.i.i43.i + %add.ptr14.i.i45.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %div7.i.i40.i br label %for.body.i for.body.i: ; preds = %for.inc.i, %for.body.lr.ph.i @@ -77298,8 +77298,8 @@ while.body.i.i46.i: ; preds = %if.then.i, %while.b %add.ptr2.val.i.i52.i = load float, ptr %11, align 4 %cmp.i.i.i.i53.i = fcmp ogt float %add.ptr.val.i.i51.i, %add.ptr2.val.i.i52.i %spec.select.i.i54.i = select i1 %cmp.i.i.i.i53.i, i64 %sub1.i.i50.i, i64 %mul.i.i49.i - %add.ptr3.i.i55.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i54.i - %add.ptr4.i.i56.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i47.i + %add.ptr3.i.i55.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i54.i + %add.ptr4.i.i56.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i47.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr4.i.i56.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr3.i.i55.i, i64 12, i1 false) %cmp.i.i57.i = icmp slt i64 %spec.select.i.i54.i, %div.i.i14.i br i1 %cmp.i.i57.i, label %while.body.i.i46.i, label %while.end.i.i16.i, !llvm.loop !471 @@ -77339,14 +77339,14 @@ land.rhs.i.i.i24.i: ; preds = %while.body.i.i.i37. %__holeIndex.addr.06.i.i.i25.i = phi i64 [ %__holeIndex.addr.1.i5.i.i, %land.rhs.lr.ph.i.i.i23.i ], [ %__parent.07.i.i.i27.i, %while.body.i.i.i37.i ] %__parent.07.in.i.i.i26.i = add nsw i64 %__holeIndex.addr.06.i.i.i25.i, -1 %__parent.07.i.i.i27.i = sdiv i64 %__parent.07.in.i.i.i26.i, 2 - %add.ptr.i.i.i28.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i27.i + %add.ptr.i.i.i28.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i27.i %13 = getelementptr i8, ptr %add.ptr.i.i.i28.i, i64 4 %add.ptr.val.i.i.i29.i = load float, ptr %13, align 4 %cmp.i.i.i.i.i30.i = fcmp ogt float %add.ptr.val.i.i.i29.i, %12 br i1 %cmp.i.i.i.i.i30.i, label %while.body.i.i.i37.i, label %"_ZSt10__pop_heapIP16llama_token_dataN9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_S7_S7_RT0_.exit.i" while.body.i.i.i37.i: ; preds = %land.rhs.i.i.i24.i - %add.ptr2.i.i.i38.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i25.i + %add.ptr2.i.i.i38.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i25.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr2.i.i.i38.i, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i.i.i28.i, i64 12, i1 false) %cmp.i.i.i39.i = icmp sgt i64 %__holeIndex.addr.06.i.i.i25.i, 2 br i1 %cmp.i.i.i39.i, label %land.rhs.i.i.i24.i, label %"_ZSt10__pop_heapIP16llama_token_dataN9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_S7_S7_RT0_.exit.i", !llvm.loop !472 @@ -77355,7 +77355,7 @@ while.body.i.i.i37.i: ; preds = %land.rhs.i.i.i24.i %__value.sroa.0.sroa.2.0.extract.trunc.i.i6.i.i = phi i32 [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i.i22.i, %if.end16.i.i20.i ], [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i.i2266.i, %if.end16.i.i20.thread.i ], [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i7.i.i, %land.rhs.i.i.i24.i ], [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i7.i.i, %while.body.i.i.i37.i ] %__holeIndex.addr.0.lcssa.i.i.i32.i = phi i64 [ 0, %if.end16.i.i20.i ], [ 0, %if.end16.i.i20.thread.i ], [ %__parent.07.i.i.i27.i, %while.body.i.i.i37.i ], [ %__holeIndex.addr.06.i.i.i25.i, %land.rhs.i.i.i24.i ] %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i33.i = trunc i64 %__value.sroa.0.0.copyload.i.i to i32 - %add.ptr5.i.i.i34.i = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i32.i + %add.ptr5.i.i.i34.i = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i32.i store i32 %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i33.i, ptr %add.ptr5.i.i.i34.i, align 4 %add.ptr5.sroa_idx.i.i.i35.i = getelementptr inbounds nuw i8, ptr %add.ptr5.i.i.i34.i, i64 4 store i32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i6.i.i, ptr %add.ptr5.sroa_idx.i.i.i35.i, align 4 @@ -77398,8 +77398,8 @@ while.body.i.i.i52: ; preds = %while.body.i, %whil %add.ptr2.val.i.i.i58 = load float, ptr %15, align 4 %cmp.i.i.i.i.i59 = fcmp ogt float %add.ptr.val.i.i.i57, %add.ptr2.val.i.i.i58 %spec.select.i.i.i60 = select i1 %cmp.i.i.i.i.i59, i64 %sub1.i.i.i56, i64 %mul.i.i.i55 - %add.ptr3.i.i.i61 = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i60 - %add.ptr4.i.i.i62 = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i53 + %add.ptr3.i.i.i61 = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %spec.select.i.i.i60 + %add.ptr4.i.i.i62 = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.024.i.i.i53 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr4.i.i.i62, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr3.i.i.i61, i64 12, i1 false) %cmp.i.i.i63 = icmp slt i64 %spec.select.i.i.i60, %div.i.i.i11 br i1 %cmp.i.i.i63, label %while.body.i.i.i52, label %while.end.i.i.i13, !llvm.loop !471 @@ -77419,8 +77419,8 @@ land.lhs.true.i.i.i: ; preds = %while.end.i.i.i13 if.end16.i.thread.i.i45: ; preds = %land.lhs.true.i.i.i %add10.i.i.i46 = shl nsw i64 %__holeIndex.addr.0.lcssa.i.i.i14, 1 %sub12.i.i.i47 = or disjoint i64 %add10.i.i.i46, 1 - %add.ptr13.i.i.i48 = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i47 - %add.ptr14.i.i.i49 = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i14 + %add.ptr13.i.i.i48 = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %sub12.i.i.i47 + %add.ptr14.i.i.i49 = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i14 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr14.i.i.i49, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr13.i.i.i48, i64 12, i1 false) %__value.sroa.0.sroa.2.0.extract.shift.i.i2.i.i50 = lshr i64 %__value.sroa.0.0.copyload.i.i4, 32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i3.i.i51 = trunc nuw i64 %__value.sroa.0.sroa.2.0.extract.shift.i.i2.i.i50 to i32 @@ -77442,14 +77442,14 @@ land.rhs.i.i.i.i24: ; preds = %while.body.i.i.i.i3 %__holeIndex.addr.06.i.i.i.i25 = phi i64 [ %__holeIndex.addr.1.i5.i.i23, %land.rhs.lr.ph.i.i.i.i21 ], [ %__parent.07.i.i.i.i27, %while.body.i.i.i.i39 ] %__parent.07.in.i.i.i.i26 = add nsw i64 %__holeIndex.addr.06.i.i.i.i25, -1 %__parent.07.i.i.i.i27 = sdiv i64 %__parent.07.in.i.i.i.i26, 2 - %add.ptr.i.i.i.i28 = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i27 + %add.ptr.i.i.i.i28 = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__parent.07.i.i.i.i27 %17 = getelementptr i8, ptr %add.ptr.i.i.i.i28, i64 4 %add.ptr.val.i.i.i.i29 = load float, ptr %17, align 4 %cmp.i.i.i.i.i.i30 = fcmp ogt float %add.ptr.val.i.i.i.i29, %16 br i1 %cmp.i.i.i.i.i.i30, label %while.body.i.i.i.i39, label %"_ZSt10__pop_heapIP16llama_token_dataN9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_S7_S7_RT0_.exit.i31" while.body.i.i.i.i39: ; preds = %land.rhs.i.i.i.i24 - %add.ptr2.i.i.i.i40 = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i25 + %add.ptr2.i.i.i.i40 = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.06.i.i.i.i25 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %add.ptr2.i.i.i.i40, ptr noundef nonnull align 4 dereferenceable(12) %add.ptr.i.i.i.i28, i64 12, i1 false) %cmp.i.i.i.i41 = icmp sgt i64 %__holeIndex.addr.06.i.i.i.i25, 2 br i1 %cmp.i.i.i.i41, label %land.rhs.i.i.i.i24, label %"_ZSt10__pop_heapIP16llama_token_dataN9__gnu_cxx5__ops15_Iter_comp_iterIZ18llama_sample_top_kE3$_0EEEvT_S7_S7_RT0_.exit.i31", !llvm.loop !472 @@ -77458,7 +77458,7 @@ while.body.i.i.i.i39: ; preds = %land.rhs.i.i.i.i24 %__value.sroa.0.sroa.2.0.extract.trunc.i.i6.i.i32 = phi i32 [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i.i.i19, %if.end16.i.i.i17 ], [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i7.i.i22, %land.rhs.i.i.i.i24 ], [ %__value.sroa.0.sroa.2.0.extract.trunc.i.i7.i.i22, %while.body.i.i.i.i39 ] %__holeIndex.addr.0.lcssa.i.i.i.i33 = phi i64 [ 0, %if.end16.i.i.i17 ], [ %__parent.07.i.i.i.i27, %while.body.i.i.i.i39 ], [ %__holeIndex.addr.06.i.i.i.i25, %land.rhs.i.i.i.i24 ] %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i34 = trunc i64 %__value.sroa.0.0.copyload.i.i4 to i32 - %add.ptr5.i.i.i.i35 = getelementptr inbounds %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i33 + %add.ptr5.i.i.i.i35 = getelementptr inbounds nuw %struct.llama_token_data, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.i.i33 store i32 %__value.sroa.0.sroa.0.0.extract.trunc.i.i.i.i34, ptr %add.ptr5.i.i.i.i35, align 4 %add.ptr5.sroa_idx.i.i.i.i36 = getelementptr inbounds nuw i8, ptr %add.ptr5.i.i.i.i35, i64 4 store i32 %__value.sroa.0.sroa.2.0.extract.trunc.i.i6.i.i32, ptr %add.ptr5.sroa_idx.i.i.i.i36, align 4 diff --git a/bench/luau/optimized/isocline.c.ll b/bench/luau/optimized/isocline.c.ll index 1370b198aaa..7be6d40c25b 100644 --- a/bench/luau/optimized/isocline.c.ll +++ b/bench/luau/optimized/isocline.c.ll @@ -1699,14 +1699,14 @@ ic_strlen.exit.thread: ; preds = %6 %.0124173 = phi i64 [ %.2126, %40 ], [ 0, %.preheader168 ] %.0127172 = phi i64 [ %.2129, %40 ], [ -1, %.preheader168 ] %.0130171 = phi i64 [ %.2132, %40 ], [ -1, %.preheader168 ] - %15 = getelementptr inbounds i8, ptr %1, i64 %.1175 + %15 = getelementptr inbounds nuw i8, ptr %1, i64 %.1175 %16 = load i8, ptr %15, align 1 %17 = icmp eq i8 %16, %4 br i1 %17, label %18, label %25 18: ; preds = %.lr.ph %19 = add nuw nsw i64 %.1175, 1 - %20 = getelementptr inbounds i8, ptr %1, i64 %19 + %20 = getelementptr inbounds nuw i8, ptr %1, i64 %19 %21 = load i8, ptr %20, align 1 %.not139 = icmp eq i8 %21, 0 br i1 %.not139, label %25, label %22 @@ -2243,7 +2243,7 @@ sbuf_append_char.exit: ; preds = %39, %42 sbuf_string.exit: ; preds = %48, %55 %.0.i.i = phi ptr [ null, %48 ], [ %spec.select.i.i, %55 ] - %58 = getelementptr inbounds i8, ptr %.0.i.i, i64 %.033 + %58 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 %.033 %59 = call zeroext i1 %50(ptr noundef %58, i64 noundef %49) #32 br i1 %59, label %65, label %60 @@ -4288,7 +4288,7 @@ bbcode_tag_pop.exit.us.i: ; preds = %.lr.ph60.i %14 = add nsw i64 %12, -1 store i64 %14, ptr %11, align 8 %15 = load ptr, ptr %9, align 8 - %.sroa.7.0..sroa_idx36.us.i = getelementptr inbounds %struct.tag_s, ptr %15, i64 %14, i32 1 + %.sroa.7.0..sroa_idx36.us.i = getelementptr inbounds nuw %struct.tag_s, ptr %15, i64 %14, i32 1 %.sroa.7.i.sroa.0.0.copyload = load i64, ptr %.sroa.7.0..sroa_idx36.us.i, align 8 br label %bbcode_style_close.exit @@ -5995,7 +5995,7 @@ sbuf_len.exit: ; preds = %1 .lr.ph.i: ; preds = %.lr.ph.i.preheader, %22 %.01219.i = phi i64 [ %.1.i, %22 ], [ 0, %.lr.ph.i.preheader ] %10 = load i32, ptr %0, align 8 - %11 = getelementptr inbounds i8, ptr %spec.select.i.i, i64 %.01219.i + %11 = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 %.01219.i %12 = sub nsw i64 %6, %.01219.i %13 = tail call noundef range(i64 0, -9223372036854775808) i64 @llvm.smax.i64(i64 %12, i64 0) %14 = tail call i64 @write(i32 noundef %10, ptr noundef nonnull %11, i64 noundef %13) #32 @@ -9958,7 +9958,7 @@ str_limit_to_length.exit: ; preds = %.lr.ph.i, %14 36: ; preds = %28 store ptr %34, ptr %0, align 8 store i64 %spec.select34.i, ptr %18, align 8 - %37 = getelementptr inbounds i8, ptr %34, i64 %spec.select34.i + %37 = getelementptr inbounds nuw i8, ptr %34, i64 %spec.select34.i store i8 0, ptr %37, align 1 %38 = load ptr, ptr %0, align 8 %39 = load i64, ptr %7, align 8 @@ -10024,7 +10024,7 @@ bbcode_tag_pop.exit.us: ; preds = %.lr.ph60.split.us %10 = add nsw i64 %6, -1 store i64 %10, ptr %5, align 8 %11 = load ptr, ptr %0, align 8 - %12 = getelementptr inbounds %struct.tag_s, ptr %11, i64 %10 + %12 = getelementptr inbounds nuw %struct.tag_s, ptr %11, i64 %10 %.sroa.0.0.copyload34.us = load ptr, ptr %12, align 8 %.sroa.7.0..sroa_idx36.us = getelementptr inbounds nuw i8, ptr %12, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.7, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.7.0..sroa_idx36.us, i64 32, i1 false) @@ -10043,7 +10043,7 @@ bbcode_tag_pop.exit: ; preds = %.lr.ph60.split %15 = add nsw i64 %13, -1 store i64 %15, ptr %5, align 8 %16 = load ptr, ptr %0, align 8 - %17 = getelementptr inbounds %struct.tag_s, ptr %16, i64 %15 + %17 = getelementptr inbounds nuw %struct.tag_s, ptr %16, i64 %15 %.sroa.0.0.copyload34 = load ptr, ptr %17, align 8 %.sroa.7.0..sroa_idx36 = getelementptr inbounds nuw i8, ptr %17, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.7, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.7.0..sroa_idx36, i64 32, i1 false) @@ -11675,7 +11675,7 @@ ic_strlen.exit: ; preds = %3, %6 30: ; preds = %22 store ptr %28, ptr %0, align 8 store i64 %spec.select34.i, ptr %10, align 8 - %31 = getelementptr inbounds i8, ptr %28, i64 %spec.select34.i + %31 = getelementptr inbounds nuw i8, ptr %28, i64 %spec.select34.i store i8 0, ptr %31, align 1 %32 = load ptr, ptr %0, align 8 %33 = load i64, ptr %12, align 8 @@ -11742,7 +11742,7 @@ ic_strlen.exit: ; preds = %3, %6 68: ; preds = %60 store ptr %66, ptr %0, align 8 store i64 %spec.select34.i43, ptr %10, align 8 - %69 = getelementptr inbounds i8, ptr %66, i64 %spec.select34.i43 + %69 = getelementptr inbounds nuw i8, ptr %66, i64 %spec.select34.i43 store i8 0, ptr %69, align 1 %70 = load ptr, ptr %0, align 8 %71 = load i64, ptr %12, align 8 @@ -12283,7 +12283,7 @@ bbcode_tag_pop.exit.us.i.i: ; preds = %80 %91 = add nsw i64 %89, -1 store i64 %91, ptr %88, align 8 %92 = load ptr, ptr %87, align 8 - %.sroa.7.0..sroa_idx36.us.i.i = getelementptr inbounds %struct.tag_s, ptr %92, i64 %91, i32 1 + %.sroa.7.0..sroa_idx36.us.i.i = getelementptr inbounds nuw %struct.tag_s, ptr %92, i64 %91, i32 1 %.sroa.7.i.sroa.0.0.copyload.i = load i64, ptr %.sroa.7.0..sroa_idx36.us.i.i, align 8 br label %edit_write_prompt.exit @@ -16809,7 +16809,7 @@ bbcode_tag_pop.exit.us.i: ; preds = %.lr.ph60.i %45 = add nsw i64 %43, -1 store i64 %45, ptr %42, align 8 %46 = load ptr, ptr %41, align 8 - %.sroa.7.0..sroa_idx36.us.i = getelementptr inbounds %struct.tag_s, ptr %46, i64 %45, i32 1 + %.sroa.7.0..sroa_idx36.us.i = getelementptr inbounds nuw %struct.tag_s, ptr %46, i64 %45, i32 1 %.sroa.7.i.sroa.0.0.copyload = load i64, ptr %.sroa.7.0..sroa_idx36.us.i, align 8 br label %bbcode_style_close.exit @@ -16840,7 +16840,7 @@ tty_code_pop.exit.thread: ; preds = %3 %12 = add nsw i64 %10, -1 store i64 %12, ptr %9, align 8 %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %14 = getelementptr inbounds [32 x i32], ptr %13, i64 0, i64 %12 + %14 = getelementptr inbounds nuw [32 x i32], ptr %13, i64 0, i64 %12 %15 = load i32, ptr %14, align 4 br label %.sink.split @@ -17412,7 +17412,7 @@ ic_strlen.exit65.us.i: ; preds = %126, %ic_strlen.exi 140: ; preds = %138 %141 = add nsw i64 %.060.us.i, -1 - %142 = getelementptr inbounds [65 x %struct.brace_s], ptr %8, i64 0, i64 %141 + %142 = getelementptr inbounds nuw [65 x %struct.brace_s], ptr %8, i64 0, i64 %141 %143 = load i8, ptr %142, align 16 %144 = icmp ne i8 %143, %131 %145 = icmp ne i64 %.060.us.i, 1 @@ -17421,7 +17421,7 @@ ic_strlen.exit65.us.i: ; preds = %126, %ic_strlen.exi 146: ; preds = %140 %147 = add nsw i64 %.060.us.i, -2 - %148 = getelementptr inbounds [65 x %struct.brace_s], ptr %8, i64 0, i64 %147 + %148 = getelementptr inbounds nuw [65 x %struct.brace_s], ptr %8, i64 0, i64 %147 %149 = load i8, ptr %148, align 16 %150 = icmp eq i8 %149, %131 br i1 %150, label %.thread.i, label %153 @@ -19395,7 +19395,7 @@ str_limit_to_length.exit.i.i: ; preds = %sbuf_append.exit.i, 450: ; preds = %442 store ptr %448, ptr %423, align 8 store i64 %spec.select34.i.i.i, ptr %430, align 8 - %451 = getelementptr inbounds i8, ptr %448, i64 %spec.select34.i.i.i + %451 = getelementptr inbounds nuw i8, ptr %448, i64 %spec.select34.i.i.i store i8 0, ptr %451, align 1 %452 = load ptr, ptr %423, align 8 %453 = load i64, ptr %429, align 8 @@ -19491,7 +19491,7 @@ sbuf_append.exit.i.thread.i: ; preds = %sbuf_insert_at_n.ex 498: ; preds = %490 store ptr %496, ptr %471, align 8 store i64 %spec.select34.i.i335.i, ptr %478, align 8 - %499 = getelementptr inbounds i8, ptr %496, i64 %spec.select34.i.i335.i + %499 = getelementptr inbounds nuw i8, ptr %496, i64 %spec.select34.i.i335.i store i8 0, ptr %499, align 1 %500 = load ptr, ptr %471, align 8 %501 = load i64, ptr %477, align 8 @@ -19585,7 +19585,7 @@ editor_append_completion3.exit.thread.i: ; preds = %sbuf_insert_at_n.ex 544: ; preds = %536 store ptr %542, ptr %517, align 8 store i64 %spec.select34.i.i317.i, ptr %524, align 8 - %545 = getelementptr inbounds i8, ptr %542, i64 %spec.select34.i.i317.i + %545 = getelementptr inbounds nuw i8, ptr %542, i64 %spec.select34.i.i317.i store i8 0, ptr %545, align 1 %546 = load ptr, ptr %517, align 8 %547 = load i64, ptr %523, align 8 @@ -20303,7 +20303,7 @@ str_limit_to_length.exit.i415.i: ; preds = %sbuf_append.exit215 837: ; preds = %829 store ptr %835, ptr %810, align 8 store i64 %spec.select34.i.i422.i, ptr %817, align 8 - %838 = getelementptr inbounds i8, ptr %835, i64 %spec.select34.i.i422.i + %838 = getelementptr inbounds nuw i8, ptr %835, i64 %spec.select34.i.i422.i store i8 0, ptr %838, align 1 %839 = load ptr, ptr %810, align 8 %840 = load i64, ptr %816, align 8 @@ -20398,7 +20398,7 @@ editor_append_completion2.exit.thread.i: ; preds = %sbuf_insert_at_n.ex 884: ; preds = %876 store ptr %882, ptr %857, align 8 store i64 %spec.select34.i.i440.i, ptr %864, align 8 - %885 = getelementptr inbounds i8, ptr %882, i64 %spec.select34.i.i440.i + %885 = getelementptr inbounds nuw i8, ptr %882, i64 %spec.select34.i.i440.i store i8 0, ptr %885, align 1 %886 = load ptr, ptr %857, align 8 %887 = load i64, ptr %863, align 8 @@ -20508,7 +20508,7 @@ str_limit_to_length.exit.i451.i: ; preds = %sbuf_append.exit221 932: ; preds = %924 store ptr %930, ptr %905, align 8 store i64 %spec.select34.i.i458.i, ptr %912, align 8 - %933 = getelementptr inbounds i8, ptr %930, i64 %spec.select34.i.i458.i + %933 = getelementptr inbounds nuw i8, ptr %930, i64 %spec.select34.i.i458.i store i8 0, ptr %933, align 1 %934 = load ptr, ptr %905, align 8 %935 = load i64, ptr %911, align 8 @@ -20972,7 +20972,7 @@ bbcode_tag_pop.exit.us.i.i.i: ; preds = %1117 %1150 = add nsw i64 %1148, -1 store i64 %1150, ptr %1147, align 8 %1151 = load ptr, ptr %1146, align 8 - %.sroa.7.0..sroa_idx36.us.i.i.i = getelementptr inbounds %struct.tag_s, ptr %1151, i64 %1150, i32 1 + %.sroa.7.0..sroa_idx36.us.i.i.i = getelementptr inbounds nuw %struct.tag_s, ptr %1151, i64 %1150, i32 1 %.sroa.7.i.sroa.0.0.copyload.i.i = load i64, ptr %.sroa.7.0..sroa_idx36.us.i.i.i, align 8 br label %edit_write_prompt.exit.i @@ -22168,7 +22168,7 @@ tty_cpop.exit.thread: ; preds = %3 %10 = add nsw i64 %8, -1 store i64 %10, ptr %7, align 8 %11 = getelementptr inbounds nuw i8, ptr %0, i64 152 - %12 = getelementptr inbounds [32 x i8], ptr %11, i64 0, i64 %10 + %12 = getelementptr inbounds nuw [32 x i8], ptr %11, i64 0, i64 %10 %13 = load i8, ptr %12, align 1 store i8 %13, ptr %1, align 1 br label %tty_readc_blocking.exit @@ -22204,7 +22204,7 @@ tty_cpop.exit.thread.i26: ; preds = %24 %27 = add nsw i64 %25, -1 store i64 %27, ptr %7, align 8 %28 = getelementptr inbounds nuw i8, ptr %0, i64 152 - %29 = getelementptr inbounds [32 x i8], ptr %28, i64 0, i64 %27 + %29 = getelementptr inbounds nuw [32 x i8], ptr %28, i64 0, i64 %27 %30 = load i8, ptr %29, align 1 store i8 %30, ptr %1, align 1 br label %tty_readc_blocking.exit @@ -22254,7 +22254,7 @@ tty_cpop.exit.thread.i30: ; preds = %54 %57 = add nsw i64 %55, -1 store i64 %57, ptr %7, align 8 %58 = getelementptr inbounds nuw i8, ptr %0, i64 152 - %59 = getelementptr inbounds [32 x i8], ptr %58, i64 0, i64 %57 + %59 = getelementptr inbounds nuw [32 x i8], ptr %58, i64 0, i64 %57 %60 = load i8, ptr %59, align 1 store i8 %60, ptr %1, align 1 br label %tty_readc_blocking.exit @@ -23663,7 +23663,7 @@ str_next_ofs.exit.thread.i: ; preds = %41, %.lr.ph.split.s 58: ; preds = %.critedge.i %59 = load ptr, ptr %9, align 8 - %60 = getelementptr inbounds i8, ptr %1, i64 %.083.i + %60 = getelementptr inbounds nuw i8, ptr %1, i64 %.083.i %61 = icmp eq ptr %59, null br i1 %61, label %sbuf_append_n.exit.i, label %62 @@ -23683,7 +23683,7 @@ sbuf_append_n.exit.i: ; preds = %62, %58 br i1 %67, label %160, label %68 68: ; preds = %66 - %69 = getelementptr inbounds i8, ptr %1, i64 %.1.i + %69 = getelementptr inbounds nuw i8, ptr %1, i64 %.1.i %70 = load i8, ptr %69, align 1 %71 = icmp slt i8 %70, 0 br i1 %71, label %72, label %99 @@ -24146,7 +24146,7 @@ define internal fastcc noundef zeroext i1 @term_get_cursor_pos(ptr nocapture nou .lr.ph.i.i.i: ; preds = %.lr.ph.i.i.i.preheader, %29 %.01219.i.i.i = phi i64 [ %.1.i.i.i, %29 ], [ 0, %.lr.ph.i.i.i.preheader ] %19 = load i32, ptr %0, align 8 - %20 = getelementptr inbounds i8, ptr @.str.279, i64 %.01219.i.i.i + %20 = getelementptr inbounds nuw i8, ptr @.str.279, i64 %.01219.i.i.i %21 = sub nsw i64 4, %.01219.i.i.i %22 = tail call i64 @write(i32 noundef %19, ptr noundef nonnull %20, i64 noundef %21) #32 %23 = icmp sgt i64 %22, 0 @@ -25953,7 +25953,7 @@ ic_strlen.exit62.us: ; preds = %13, %ic_strlen.exit 28: ; preds = %26 %29 = add nsw i64 %.050.us, -1 - %30 = getelementptr inbounds [65 x %struct.brace_s], ptr %5, i64 0, i64 %29 + %30 = getelementptr inbounds nuw [65 x %struct.brace_s], ptr %5, i64 0, i64 %29 %31 = load i8, ptr %30, align 16 %.not59.us = icmp eq i8 %31, %19 br i1 %.not59.us, label %32, label %..loopexit_crit_edge.us @@ -25963,7 +25963,7 @@ ic_strlen.exit62.us: ; preds = %13, %ic_strlen.exit br i1 %33, label %39, label %34 34: ; preds = %32 - %35 = getelementptr inbounds [65 x %struct.brace_s], ptr %5, i64 0, i64 %29, i32 1 + %35 = getelementptr inbounds nuw [65 x %struct.brace_s], ptr %5, i64 0, i64 %29, i32 1 %36 = load i8, ptr %35, align 1 %37 = trunc i8 %36 to i1 %38 = add nuw nsw i64 %.048.us, 1 @@ -25971,7 +25971,7 @@ ic_strlen.exit62.us: ; preds = %13, %ic_strlen.exit br label %..loopexit_crit_edge.us 39: ; preds = %32 - %40 = getelementptr inbounds [65 x %struct.brace_s], ptr %5, i64 0, i64 %29, i32 2 + %40 = getelementptr inbounds nuw [65 x %struct.brace_s], ptr %5, i64 0, i64 %29, i32 2 %41 = load i64, ptr %40, align 8 %42 = add nsw i64 %41, 1 br label %..loopexit_crit_edge.us diff --git a/bench/meilisearch-rs/optimized/1bqqlm3jtb9rf3cv.ll b/bench/meilisearch-rs/optimized/1bqqlm3jtb9rf3cv.ll index ca9e1e8985d..56d71036318 100644 --- a/bench/meilisearch-rs/optimized/1bqqlm3jtb9rf3cv.ll +++ b/bench/meilisearch-rs/optimized/1bqqlm3jtb9rf3cv.ll @@ -557,10 +557,10 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %59 = icmp ult i64 %.sroa.0.041.i, %.sroa.14.081 call void @llvm.assume(i1 %59) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38), !noalias !127 - %60 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.0.i, i32 4 + %60 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.0.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %38, ptr noundef nonnull readonly align 8 dereferenceable(16) %60, i64 16, i1 false), !alias.scope !139, !noalias !143 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37), !noalias !127 - %61 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.0.041.i, i32 4 + %61 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.0.041.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %37, ptr noundef nonnull readonly align 8 dereferenceable(16) %61, i64 16, i1 false), !alias.scope !144, !noalias !148 %62 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %37, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %38), !range !32, !noalias !127 %63 = icmp eq i8 %62, -1 @@ -576,7 +576,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %67 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.031.0.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %36, ptr noundef nonnull readonly align 8 dereferenceable(16) %67, i64 16, i1 false), !alias.scope !157, !noalias !161 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35), !noalias !149 - %68 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.1.i, i32 4 + %68 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.1.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %35, ptr noundef nonnull readonly align 8 dereferenceable(16) %68, i64 16, i1 false), !alias.scope !162, !noalias !166 %69 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %35, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %36), !range !32, !noalias !149 %70 = icmp eq i8 %69, -1 @@ -589,7 +589,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %72 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.2.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %34, ptr noundef nonnull readonly align 8 dereferenceable(16) %72, i64 16, i1 false), !alias.scope !175, !noalias !179 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33), !noalias !167 - %73 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %65, i32 4 + %73 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %65, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %33, ptr noundef nonnull readonly align 8 dereferenceable(16) %73, i64 16, i1 false), !alias.scope !180, !noalias !184 %74 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %33, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %34), !range !32, !noalias !167 %75 = icmp eq i8 %74, -1 @@ -610,7 +610,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %80 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %54, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %32, ptr noundef nonnull readonly align 8 dereferenceable(16) %80, i64 16, i1 false), !alias.scope !197, !noalias !201 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31), !noalias !185 - %81 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %77, i32 4 + %81 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %77, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %31, ptr noundef nonnull readonly align 8 dereferenceable(16) %81, i64 16, i1 false), !alias.scope !202, !noalias !206 %82 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %31, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %32), !range !32, !noalias !185 %83 = icmp eq i8 %82, -1 @@ -625,7 +625,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %86 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %78, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %30, ptr noundef nonnull readonly align 8 dereferenceable(16) %86, i64 16, i1 false), !alias.scope !215, !noalias !219 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29), !noalias !207 - %87 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.0.1.i, i32 4 + %87 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.0.1.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %29, ptr noundef nonnull readonly align 8 dereferenceable(16) %87, i64 16, i1 false), !alias.scope !220, !noalias !224 %88 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %29, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %30), !range !32, !noalias !207 %89 = icmp eq i8 %88, -1 @@ -635,10 +635,10 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %.sroa.0.5.i = add nuw nsw i64 %90, %.sroa.0.4.i %.sroa.0.2.i = select i1 %89, i64 %78, i64 %.sroa.0.1.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28), !noalias !225 - %91 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.0.2.i, i32 4 + %91 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.0.2.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %28, ptr noundef nonnull readonly align 8 dereferenceable(16) %91, i64 16, i1 false), !alias.scope !233, !noalias !237 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27), !noalias !225 - %92 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %84, i32 4 + %92 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %84, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %27, ptr noundef nonnull readonly align 8 dereferenceable(16) %92, i64 16, i1 false), !alias.scope !238, !noalias !242 %93 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %27, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %28), !range !32, !noalias !225 %94 = icmp eq i8 %93, -1 @@ -657,7 +657,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %100 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %55, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %26, ptr noundef nonnull readonly align 8 dereferenceable(16) %100, i64 16, i1 false), !alias.scope !255, !noalias !259 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %25), !noalias !243 - %101 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %96, i32 4 + %101 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %96, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %25, ptr noundef nonnull readonly align 8 dereferenceable(16) %101, i64 16, i1 false), !alias.scope !260, !noalias !264 %102 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %25, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %26), !range !32, !noalias !243 %103 = icmp eq i8 %102, -1 @@ -673,7 +673,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %107 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %97, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %24, ptr noundef nonnull readonly align 8 dereferenceable(16) %107, i64 16, i1 false), !alias.scope !273, !noalias !277 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23), !noalias !265 - %108 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.4.i, i32 4 + %108 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.4.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %23, ptr noundef nonnull readonly align 8 dereferenceable(16) %108, i64 16, i1 false), !alias.scope !278, !noalias !282 %109 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %23, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %24), !range !32, !noalias !265 %110 = icmp eq i8 %109, -1 @@ -683,10 +683,10 @@ define hidden void @_ZN4core5slice4sort7recurse17h86a04bfa1b35a3e1E.llvm.1236058 %.sroa.0.8.i = add nuw nsw i64 %.sroa.0.7.i, %111 %.sroa.026.5.i = select i1 %110, i64 %97, i64 %.sroa.026.4.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22), !noalias !283 - %112 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.5.i, i32 4 + %112 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %.sroa.026.5.i, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %22, ptr noundef nonnull readonly align 8 dereferenceable(16) %112, i64 16, i1 false), !alias.scope !291, !noalias !295 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21), !noalias !283 - %113 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %105, i32 4 + %113 = getelementptr inbounds nuw { { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, { [11 x i8], i8, [4 x i8] }, { [16 x i8] } }, ptr %.sroa.0.082, i64 %105, i32 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %21, ptr noundef nonnull readonly align 8 dereferenceable(16) %113, i64 16, i1 false), !alias.scope !296, !noalias !300 %114 = call noundef i8 @"_ZN80_$LT$time..offset_date_time..OffsetDateTime$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17h793b689048cd26d1E"(ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %21, ptr noalias noundef nonnull readonly align 4 dereferenceable(16) %22), !range !32, !noalias !283 %115 = icmp eq i8 %114, -1 diff --git a/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll b/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll index 201bf0bd5f2..36c5df844f6 100644 --- a/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll +++ b/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll @@ -70079,7 +70079,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %108 = getelementptr i8, ptr %107, i64 -24 %.val4.i = load i64, ptr %108, align 8, !alias.scope !15285, !noalias !15290, !noundef !16 %.sroa.0.015.i.i = and i64 %57, %.val4.i - %109 = getelementptr inbounds i8, ptr %60, i64 %.sroa.0.015.i.i + %109 = getelementptr inbounds nuw i8, ptr %60, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %109, align 1, !noalias !15295 %110 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %111 = bitcast <16 x i1> %110 to i16 @@ -70092,7 +70092,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %112 = add i64 %.sroa.7.018.i.i, 16 %113 = add i64 %112, %.sroa.0.019.i.i %.sroa.0.0.i.i4 = and i64 %113, %57 - %114 = getelementptr inbounds i8, ptr %60, i64 %.sroa.0.0.i.i4 + %114 = getelementptr inbounds nuw i8, ptr %60, i64 %.sroa.0.0.i.i4 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %114, align 1, !noalias !15295 %115 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %116 = bitcast <16 x i1> %115 to i16 @@ -70106,7 +70106,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %118 = zext nneg i16 %117 to i64 %119 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %118 %120 = and i64 %119, %57 - %121 = getelementptr inbounds i8, ptr %60, i64 %120 + %121 = getelementptr inbounds nuw i8, ptr %60, i64 %120 %122 = load i8, ptr %121, align 1, !noalias !15302, !noundef !16 %123 = icmp sgt i8 %122, -1 br i1 %123, label %124, label %131 @@ -70123,7 +70123,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 131: ; preds = %124, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %130, %124 ], [ %120, %._crit_edge.i.i ] - %132 = getelementptr inbounds i8, ptr %60, i64 %.sroa.0.0.i8.i.i + %132 = getelementptr inbounds nuw i8, ptr %60, i64 %.sroa.0.0.i8.i.i %133 = lshr i64 %.val4.i, 57 %134 = trunc nuw nsw i64 %133 to i8 %135 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -70469,7 +70469,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !15399 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6), !noalias !15373 %.sroa.0.015.i.i = and i64 %63, %145 - %146 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.015.i.i + %146 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %146, align 1, !noalias !15401 %147 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %148 = bitcast <16 x i1> %147 to i16 @@ -70482,7 +70482,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %149 = add i64 %.sroa.7.018.i.i, 16 %150 = add i64 %149, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %150, %63 - %151 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.0.i.i8 + %151 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %151, align 1, !noalias !15401 %152 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %153 = bitcast <16 x i1> %152 to i16 @@ -70496,7 +70496,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %155 = zext nneg i16 %154 to i64 %156 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %155 %157 = and i64 %156, %63 - %158 = getelementptr inbounds i8, ptr %66, i64 %157 + %158 = getelementptr inbounds nuw i8, ptr %66, i64 %157 %159 = load i8, ptr %158, align 1, !noalias !15408, !noundef !16 %160 = icmp sgt i8 %159, -1 br i1 %160, label %161, label %168 @@ -70513,7 +70513,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 168: ; preds = %161, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %167, %161 ], [ %157, %._crit_edge.i.i ] - %169 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.0.i8.i.i + %169 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.0.i8.i.i %170 = lshr i64 %145, 57 %171 = trunc nuw nsw i64 %170 to i8 %172 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -70875,7 +70875,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !15505 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !15479 %.sroa.0.015.i.i = and i64 %68, %158 - %159 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.015.i.i + %159 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %159, align 1, !noalias !15507 %160 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %161 = bitcast <16 x i1> %160 to i16 @@ -70888,7 +70888,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %162 = add i64 %.sroa.7.018.i.i, 16 %163 = add i64 %162, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %163, %68 - %164 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.0.i.i8 + %164 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %164, align 1, !noalias !15507 %165 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %166 = bitcast <16 x i1> %165 to i16 @@ -70902,7 +70902,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %168 = zext nneg i16 %167 to i64 %169 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %168 %170 = and i64 %169, %68 - %171 = getelementptr inbounds i8, ptr %71, i64 %170 + %171 = getelementptr inbounds nuw i8, ptr %71, i64 %170 %172 = load i8, ptr %171, align 1, !noalias !15514, !noundef !16 %173 = icmp sgt i8 %172, -1 br i1 %173, label %174, label %181 @@ -70919,7 +70919,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 181: ; preds = %174, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %180, %174 ], [ %170, %._crit_edge.i.i ] - %182 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.0.i8.i.i + %182 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.0.i8.i.i %183 = lshr i64 %158, 57 %184 = trunc nuw nsw i64 %183 to i8 %185 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -71185,7 +71185,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %108 = getelementptr i8, ptr %107, i64 -24 %.val4.i = load i64, ptr %108, align 8, !alias.scope !15566, !noalias !15571, !noundef !16 %.sroa.0.015.i.i = and i64 %57, %.val4.i - %109 = getelementptr inbounds i8, ptr %60, i64 %.sroa.0.015.i.i + %109 = getelementptr inbounds nuw i8, ptr %60, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %109, align 1, !noalias !15576 %110 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %111 = bitcast <16 x i1> %110 to i16 @@ -71198,7 +71198,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %112 = add i64 %.sroa.7.018.i.i, 16 %113 = add i64 %112, %.sroa.0.019.i.i %.sroa.0.0.i.i4 = and i64 %113, %57 - %114 = getelementptr inbounds i8, ptr %60, i64 %.sroa.0.0.i.i4 + %114 = getelementptr inbounds nuw i8, ptr %60, i64 %.sroa.0.0.i.i4 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %114, align 1, !noalias !15576 %115 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %116 = bitcast <16 x i1> %115 to i16 @@ -71212,7 +71212,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %118 = zext nneg i16 %117 to i64 %119 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %118 %120 = and i64 %119, %57 - %121 = getelementptr inbounds i8, ptr %60, i64 %120 + %121 = getelementptr inbounds nuw i8, ptr %60, i64 %120 %122 = load i8, ptr %121, align 1, !noalias !15583, !noundef !16 %123 = icmp sgt i8 %122, -1 br i1 %123, label %124, label %131 @@ -71229,7 +71229,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 131: ; preds = %124, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %130, %124 ], [ %120, %._crit_edge.i.i ] - %132 = getelementptr inbounds i8, ptr %60, i64 %.sroa.0.0.i8.i.i + %132 = getelementptr inbounds nuw i8, ptr %60, i64 %.sroa.0.0.i8.i.i %133 = lshr i64 %.val4.i, 57 %134 = trunc nuw nsw i64 %133 to i8 %135 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -71591,7 +71591,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !15683 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !15654 %.sroa.0.015.i.i = and i64 %67, %157 - %158 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.015.i.i + %158 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %158, align 1, !noalias !15685 %159 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -71604,7 +71604,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %161 = add i64 %.sroa.7.018.i.i, 16 %162 = add i64 %161, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %162, %67 - %163 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i.i8 + %163 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %163, align 1, !noalias !15685 %164 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %165 = bitcast <16 x i1> %164 to i16 @@ -71618,7 +71618,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %167 = zext nneg i16 %166 to i64 %168 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %167 %169 = and i64 %168, %67 - %170 = getelementptr inbounds i8, ptr %70, i64 %169 + %170 = getelementptr inbounds nuw i8, ptr %70, i64 %169 %171 = load i8, ptr %170, align 1, !noalias !15692, !noundef !16 %172 = icmp sgt i8 %171, -1 br i1 %172, label %173, label %180 @@ -71635,7 +71635,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 180: ; preds = %173, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %179, %173 ], [ %169, %._crit_edge.i.i ] - %181 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i8.i.i + %181 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i8.i.i %182 = lshr i64 %157, 57 %183 = trunc nuw nsw i64 %182 to i8 %184 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -71984,7 +71984,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !15794 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !15763 %.sroa.0.015.i.i = and i64 %62, %147 - %148 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.015.i.i + %148 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %148, align 1, !noalias !15796 %149 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %150 = bitcast <16 x i1> %149 to i16 @@ -71997,7 +71997,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %151 = add i64 %.sroa.7.018.i.i, 16 %152 = add i64 %151, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %152, %62 - %153 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i.i8 + %153 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %153, align 1, !noalias !15796 %154 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %155 = bitcast <16 x i1> %154 to i16 @@ -72011,7 +72011,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %157 = zext nneg i16 %156 to i64 %158 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %157 %159 = and i64 %158, %62 - %160 = getelementptr inbounds i8, ptr %65, i64 %159 + %160 = getelementptr inbounds nuw i8, ptr %65, i64 %159 %161 = load i8, ptr %160, align 1, !noalias !15803, !noundef !16 %162 = icmp sgt i8 %161, -1 br i1 %162, label %163, label %170 @@ -72028,7 +72028,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 170: ; preds = %163, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %169, %163 ], [ %159, %._crit_edge.i.i ] - %171 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i8.i.i + %171 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i8.i.i %172 = lshr i64 %147, 57 %173 = trunc nuw nsw i64 %172 to i8 %174 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -72368,7 +72368,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !15899 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !15874 %.sroa.0.015.i.i = and i64 %62, %143 - %144 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.015.i.i + %144 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %144, align 1, !noalias !15901 %145 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %146 = bitcast <16 x i1> %145 to i16 @@ -72381,7 +72381,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %147 = add i64 %.sroa.7.018.i.i, 16 %148 = add i64 %147, %.sroa.0.019.i.i %.sroa.0.0.i.i7 = and i64 %148, %62 - %149 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i.i7 + %149 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i.i7 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %149, align 1, !noalias !15901 %150 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %151 = bitcast <16 x i1> %150 to i16 @@ -72395,7 +72395,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %153 = zext nneg i16 %152 to i64 %154 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %153 %155 = and i64 %154, %62 - %156 = getelementptr inbounds i8, ptr %65, i64 %155 + %156 = getelementptr inbounds nuw i8, ptr %65, i64 %155 %157 = load i8, ptr %156, align 1, !noalias !15908, !noundef !16 %158 = icmp sgt i8 %157, -1 br i1 %158, label %159, label %166 @@ -72412,7 +72412,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 166: ; preds = %159, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %165, %159 ], [ %155, %._crit_edge.i.i ] - %167 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i8.i.i + %167 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i8.i.i %168 = lshr i64 %143, 57 %169 = trunc nuw nsw i64 %168 to i8 %170 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -72766,7 +72766,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !16011 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !15982 %.sroa.0.015.i.i = and i64 %65, %150 - %151 = getelementptr inbounds i8, ptr %68, i64 %.sroa.0.015.i.i + %151 = getelementptr inbounds nuw i8, ptr %68, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %151, align 1, !noalias !16013 %152 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %153 = bitcast <16 x i1> %152 to i16 @@ -72779,7 +72779,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %154 = add i64 %.sroa.7.018.i.i, 16 %155 = add i64 %154, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %155, %65 - %156 = getelementptr inbounds i8, ptr %68, i64 %.sroa.0.0.i.i8 + %156 = getelementptr inbounds nuw i8, ptr %68, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %156, align 1, !noalias !16013 %157 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %158 = bitcast <16 x i1> %157 to i16 @@ -72793,7 +72793,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %160 = zext nneg i16 %159 to i64 %161 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %160 %162 = and i64 %161, %65 - %163 = getelementptr inbounds i8, ptr %68, i64 %162 + %163 = getelementptr inbounds nuw i8, ptr %68, i64 %162 %164 = load i8, ptr %163, align 1, !noalias !16020, !noundef !16 %165 = icmp sgt i8 %164, -1 br i1 %165, label %166, label %173 @@ -72810,7 +72810,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 173: ; preds = %166, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %172, %166 ], [ %162, %._crit_edge.i.i ] - %174 = getelementptr inbounds i8, ptr %68, i64 %.sroa.0.0.i8.i.i + %174 = getelementptr inbounds nuw i8, ptr %68, i64 %.sroa.0.0.i8.i.i %175 = lshr i64 %150, 57 %176 = trunc nuw nsw i64 %175 to i8 %177 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -73153,7 +73153,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !16121 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !16091 %.sroa.0.015.i.i = and i64 %62, %145 - %146 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.015.i.i + %146 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %146, align 1, !noalias !16123 %147 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %148 = bitcast <16 x i1> %147 to i16 @@ -73166,7 +73166,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %149 = add i64 %.sroa.7.018.i.i, 16 %150 = add i64 %149, %.sroa.0.019.i.i %.sroa.0.0.i.i7 = and i64 %150, %62 - %151 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i.i7 + %151 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i.i7 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %151, align 1, !noalias !16123 %152 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %153 = bitcast <16 x i1> %152 to i16 @@ -73180,7 +73180,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %155 = zext nneg i16 %154 to i64 %156 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %155 %157 = and i64 %156, %62 - %158 = getelementptr inbounds i8, ptr %65, i64 %157 + %158 = getelementptr inbounds nuw i8, ptr %65, i64 %157 %159 = load i8, ptr %158, align 1, !noalias !16130, !noundef !16 %160 = icmp sgt i8 %159, -1 br i1 %160, label %161, label %168 @@ -73197,7 +73197,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 168: ; preds = %161, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %167, %161 ], [ %157, %._crit_edge.i.i ] - %169 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i8.i.i + %169 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i8.i.i %170 = lshr i64 %145, 57 %171 = trunc nuw nsw i64 %170 to i8 %172 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -73550,7 +73550,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !16226 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !16201 %.sroa.0.015.i.i = and i64 %68, %154 - %155 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.015.i.i + %155 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %155, align 1, !noalias !16228 %156 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %157 = bitcast <16 x i1> %156 to i16 @@ -73563,7 +73563,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %158 = add i64 %.sroa.7.018.i.i, 16 %159 = add i64 %158, %.sroa.0.019.i.i %.sroa.0.0.i.i7 = and i64 %159, %68 - %160 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.0.i.i7 + %160 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.0.i.i7 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %160, align 1, !noalias !16228 %161 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %162 = bitcast <16 x i1> %161 to i16 @@ -73577,7 +73577,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %164 = zext nneg i16 %163 to i64 %165 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %164 %166 = and i64 %165, %68 - %167 = getelementptr inbounds i8, ptr %71, i64 %166 + %167 = getelementptr inbounds nuw i8, ptr %71, i64 %166 %168 = load i8, ptr %167, align 1, !noalias !16235, !noundef !16 %169 = icmp sgt i8 %168, -1 br i1 %169, label %170, label %177 @@ -73594,7 +73594,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 177: ; preds = %170, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %176, %170 ], [ %166, %._crit_edge.i.i ] - %178 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.0.i8.i.i + %178 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.0.i8.i.i %179 = lshr i64 %154, 57 %180 = trunc nuw nsw i64 %179 to i8 %181 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -73948,7 +73948,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !16335 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !16306 %.sroa.0.015.i.i = and i64 %63, %145 - %146 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.015.i.i + %146 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %146, align 1, !noalias !16337 %147 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %148 = bitcast <16 x i1> %147 to i16 @@ -73961,7 +73961,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %149 = add i64 %.sroa.7.018.i.i, 16 %150 = add i64 %149, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %150, %63 - %151 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.0.i.i8 + %151 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %151, align 1, !noalias !16337 %152 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %153 = bitcast <16 x i1> %152 to i16 @@ -73975,7 +73975,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %155 = zext nneg i16 %154 to i64 %156 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %155 %157 = and i64 %156, %63 - %158 = getelementptr inbounds i8, ptr %66, i64 %157 + %158 = getelementptr inbounds nuw i8, ptr %66, i64 %157 %159 = load i8, ptr %158, align 1, !noalias !16344, !noundef !16 %160 = icmp sgt i8 %159, -1 br i1 %160, label %161, label %168 @@ -73992,7 +73992,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 168: ; preds = %161, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %167, %161 ], [ %157, %._crit_edge.i.i ] - %169 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.0.i8.i.i + %169 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.0.i8.i.i %170 = lshr i64 %145, 57 %171 = trunc nuw nsw i64 %170 to i8 %172 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -74345,7 +74345,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !16441 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !16415 %.sroa.0.015.i.i = and i64 %63, %145 - %146 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.015.i.i + %146 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %146, align 1, !noalias !16443 %147 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %148 = bitcast <16 x i1> %147 to i16 @@ -74358,7 +74358,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %149 = add i64 %.sroa.7.018.i.i, 16 %150 = add i64 %149, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %150, %63 - %151 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.0.i.i8 + %151 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %151, align 1, !noalias !16443 %152 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %153 = bitcast <16 x i1> %152 to i16 @@ -74372,7 +74372,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %155 = zext nneg i16 %154 to i64 %156 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %155 %157 = and i64 %156, %63 - %158 = getelementptr inbounds i8, ptr %66, i64 %157 + %158 = getelementptr inbounds nuw i8, ptr %66, i64 %157 %159 = load i8, ptr %158, align 1, !noalias !16450, !noundef !16 %160 = icmp sgt i8 %159, -1 br i1 %160, label %161, label %168 @@ -74389,7 +74389,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 168: ; preds = %161, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %167, %161 ], [ %157, %._crit_edge.i.i ] - %169 = getelementptr inbounds i8, ptr %66, i64 %.sroa.0.0.i8.i.i + %169 = getelementptr inbounds nuw i8, ptr %66, i64 %.sroa.0.0.i8.i.i %170 = lshr i64 %145, 57 %171 = trunc nuw nsw i64 %170 to i8 %172 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -74758,7 +74758,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !16553 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !16524 %.sroa.0.015.i.i = and i64 %67, %157 - %158 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.015.i.i + %158 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %158, align 1, !noalias !16555 %159 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -74771,7 +74771,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %161 = add i64 %.sroa.7.018.i.i, 16 %162 = add i64 %161, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %162, %67 - %163 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i.i8 + %163 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %163, align 1, !noalias !16555 %164 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %165 = bitcast <16 x i1> %164 to i16 @@ -74785,7 +74785,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %167 = zext nneg i16 %166 to i64 %168 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %167 %169 = and i64 %168, %67 - %170 = getelementptr inbounds i8, ptr %70, i64 %169 + %170 = getelementptr inbounds nuw i8, ptr %70, i64 %169 %171 = load i8, ptr %170, align 1, !noalias !16562, !noundef !16 %172 = icmp sgt i8 %171, -1 br i1 %172, label %173, label %180 @@ -74802,7 +74802,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 180: ; preds = %173, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %179, %173 ], [ %169, %._crit_edge.i.i ] - %181 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i8.i.i + %181 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i8.i.i %182 = lshr i64 %157, 57 %183 = trunc nuw nsw i64 %182 to i8 %184 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -75164,7 +75164,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !16660 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !16633 %.sroa.0.015.i.i = and i64 %67, %157 - %158 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.015.i.i + %158 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %158, align 1, !noalias !16662 %159 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -75177,7 +75177,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %161 = add i64 %.sroa.7.018.i.i, 16 %162 = add i64 %161, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %162, %67 - %163 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i.i8 + %163 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %163, align 1, !noalias !16662 %164 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %165 = bitcast <16 x i1> %164 to i16 @@ -75191,7 +75191,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %167 = zext nneg i16 %166 to i64 %168 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %167 %169 = and i64 %168, %67 - %170 = getelementptr inbounds i8, ptr %70, i64 %169 + %170 = getelementptr inbounds nuw i8, ptr %70, i64 %169 %171 = load i8, ptr %170, align 1, !noalias !16669, !noundef !16 %172 = icmp sgt i8 %171, -1 br i1 %172, label %173, label %180 @@ -75208,7 +75208,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 180: ; preds = %173, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %179, %173 ], [ %169, %._crit_edge.i.i ] - %181 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i8.i.i + %181 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i8.i.i %182 = lshr i64 %157, 57 %183 = trunc nuw nsw i64 %182 to i8 %184 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -75506,7 +75506,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %125 = xor i64 %124, 255 %126 = mul i64 %125, 5871781006564002453 %.sroa.0.015.i.i = and i64 %60, %126 - %127 = getelementptr inbounds i8, ptr %63, i64 %.sroa.0.015.i.i + %127 = getelementptr inbounds nuw i8, ptr %63, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %127, align 1, !noalias !16733 %128 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %129 = bitcast <16 x i1> %128 to i16 @@ -75519,7 +75519,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %130 = add i64 %.sroa.7.018.i.i, 16 %131 = add i64 %130, %.sroa.0.019.i.i %.sroa.0.0.i.i7 = and i64 %131, %60 - %132 = getelementptr inbounds i8, ptr %63, i64 %.sroa.0.0.i.i7 + %132 = getelementptr inbounds nuw i8, ptr %63, i64 %.sroa.0.0.i.i7 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %132, align 1, !noalias !16733 %133 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %134 = bitcast <16 x i1> %133 to i16 @@ -75533,7 +75533,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %136 = zext nneg i16 %135 to i64 %137 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %136 %138 = and i64 %137, %60 - %139 = getelementptr inbounds i8, ptr %63, i64 %138 + %139 = getelementptr inbounds nuw i8, ptr %63, i64 %138 %140 = load i8, ptr %139, align 1, !noalias !16740, !noundef !16 %141 = icmp sgt i8 %140, -1 br i1 %141, label %142, label %149 @@ -75550,7 +75550,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 149: ; preds = %142, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %148, %142 ], [ %138, %._crit_edge.i.i ] - %150 = getelementptr inbounds i8, ptr %63, i64 %.sroa.0.0.i8.i.i + %150 = getelementptr inbounds nuw i8, ptr %63, i64 %.sroa.0.0.i8.i.i %151 = lshr i64 %126, 57 %152 = trunc nuw nsw i64 %151 to i8 %153 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -75919,7 +75919,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !16839 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5), !noalias !16813 %.sroa.0.015.i.i = and i64 %67, %157 - %158 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.015.i.i + %158 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %158, align 1, !noalias !16841 %159 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -75932,7 +75932,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %161 = add i64 %.sroa.7.018.i.i, 16 %162 = add i64 %161, %.sroa.0.019.i.i %.sroa.0.0.i.i8 = and i64 %162, %67 - %163 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i.i8 + %163 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i.i8 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %163, align 1, !noalias !16841 %164 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %165 = bitcast <16 x i1> %164 to i16 @@ -75946,7 +75946,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %167 = zext nneg i16 %166 to i64 %168 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %167 %169 = and i64 %168, %67 - %170 = getelementptr inbounds i8, ptr %70, i64 %169 + %170 = getelementptr inbounds nuw i8, ptr %70, i64 %169 %171 = load i8, ptr %170, align 1, !noalias !16848, !noundef !16 %172 = icmp sgt i8 %171, -1 br i1 %172, label %173, label %180 @@ -75963,7 +75963,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 180: ; preds = %173, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %179, %173 ], [ %169, %._crit_edge.i.i ] - %181 = getelementptr inbounds i8, ptr %70, i64 %.sroa.0.0.i8.i.i + %181 = getelementptr inbounds nuw i8, ptr %70, i64 %.sroa.0.0.i8.i.i %182 = lshr i64 %157, 57 %183 = trunc nuw nsw i64 %182 to i8 %184 = add nsw i64 %.sroa.0.0.i8.i.i, -16 @@ -76316,7 +76316,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !16944 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !16919 %.sroa.0.015.i.i = and i64 %68, %154 - %155 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.015.i.i + %155 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.015.i.i %.sroa.0.0.copyload.i1316.i.i = load <16 x i8>, ptr %155, align 1, !noalias !16946 %156 = icmp slt <16 x i8> %.sroa.0.0.copyload.i1316.i.i, zeroinitializer %157 = bitcast <16 x i1> %156 to i16 @@ -76329,7 +76329,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %158 = add i64 %.sroa.7.018.i.i, 16 %159 = add i64 %158, %.sroa.0.019.i.i %.sroa.0.0.i.i7 = and i64 %159, %68 - %160 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.0.i.i7 + %160 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.0.i.i7 %.sroa.0.0.copyload.i13.i.i = load <16 x i8>, ptr %160, align 1, !noalias !16946 %161 = icmp slt <16 x i8> %.sroa.0.0.copyload.i13.i.i, zeroinitializer %162 = bitcast <16 x i1> %161 to i16 @@ -76343,7 +76343,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 %164 = zext nneg i16 %163 to i64 %165 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %164 %166 = and i64 %165, %68 - %167 = getelementptr inbounds i8, ptr %71, i64 %166 + %167 = getelementptr inbounds nuw i8, ptr %71, i64 %166 %168 = load i8, ptr %167, align 1, !noalias !16953, !noundef !16 %169 = icmp sgt i8 %168, -1 br i1 %169, label %170, label %177 @@ -76360,7 +76360,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h26ffe40d2b65e92aE.llvm.69555 177: ; preds = %170, %._crit_edge.i.i %.sroa.0.0.i8.i.i = phi i64 [ %176, %170 ], [ %166, %._crit_edge.i.i ] - %178 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.0.i8.i.i + %178 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.0.i8.i.i %179 = lshr i64 %154, 57 %180 = trunc nuw nsw i64 %179 to i8 %181 = add nsw i64 %.sroa.0.0.i8.i.i, -16 diff --git a/bench/meshoptimizer/optimized/simplifier.cpp.ll b/bench/meshoptimizer/optimized/simplifier.cpp.ll index 960f8ae7d39..56068e8ff3c 100644 --- a/bench/meshoptimizer/optimized/simplifier.cpp.ll +++ b/bench/meshoptimizer/optimized/simplifier.cpp.ll @@ -430,16 +430,16 @@ for.body40.i: ; preds = %for.cond.loopexit.i br i1 %cmp43.i, label %if.then44.i, label %if.else122.i if.then44.i: ; preds = %for.body40.i - %arrayidx45.i = getelementptr inbounds i32, ptr %call.i128, i64 %i37.0118.i + %arrayidx45.i = getelementptr inbounds nuw i32, ptr %call.i128, i64 %i37.0118.i %42 = load i32, ptr %arrayidx45.i, align 4 %conv46.i = zext i32 %42 to i64 %cmp47.i = icmp eq i64 %i37.0118.i, %conv46.i br i1 %cmp47.i, label %if.then48.i, label %if.else67.i if.then48.i: ; preds = %if.then44.i - %arrayidx49.i179 = getelementptr inbounds i32, ptr %call.i159, i64 %i37.0118.i + %arrayidx49.i179 = getelementptr inbounds nuw i32, ptr %call.i159, i64 %i37.0118.i %43 = load i32, ptr %arrayidx49.i179, align 4 - %arrayidx50.i = getelementptr inbounds i32, ptr %call.i151, i64 %i37.0118.i + %arrayidx50.i = getelementptr inbounds nuw i32, ptr %call.i151, i64 %i37.0118.i %44 = load i32, ptr %arrayidx50.i, align 4 %cmp51.i = icmp eq i32 %43, -1 %cmp52.i = icmp eq i32 %44, -1 @@ -447,7 +447,7 @@ if.then48.i: ; preds = %if.then44.i br i1 %or.cond.i, label %if.then53.i, label %if.else55.i if.then53.i: ; preds = %if.then48.i - %arrayidx54.i = getelementptr inbounds i8, ptr %call.i144, i64 %i37.0118.i + %arrayidx54.i = getelementptr inbounds nuw i8, ptr %call.i144, i64 %i37.0118.i store i8 0, ptr %arrayidx54.i, align 1 br label %for.inc128.i @@ -457,7 +457,7 @@ if.else55.i: ; preds = %if.then48.i %conv59.i = zext i32 %44 to i64 %cmp60.not.i = icmp eq i64 %i37.0118.i, %conv59.i %or.cond108.i = select i1 %cmp57.not.i180, i1 true, i1 %cmp60.not.i - %arrayidx64.i181 = getelementptr inbounds i8, ptr %call.i144, i64 %i37.0118.i + %arrayidx64.i181 = getelementptr inbounds nuw i8, ptr %call.i144, i64 %i37.0118.i br i1 %or.cond108.i, label %if.else63.i, label %if.then61.i if.then61.i: ; preds = %if.else55.i @@ -476,9 +476,9 @@ if.else67.i: ; preds = %if.then44.i br i1 %cmp72.i, label %if.then73.i, label %if.else118.i if.then73.i: ; preds = %if.else67.i - %arrayidx75.i = getelementptr inbounds i32, ptr %call.i159, i64 %i37.0118.i + %arrayidx75.i = getelementptr inbounds nuw i32, ptr %call.i159, i64 %i37.0118.i %46 = load i32, ptr %arrayidx75.i, align 4 - %arrayidx76.i = getelementptr inbounds i32, ptr %call.i151, i64 %i37.0118.i + %arrayidx76.i = getelementptr inbounds nuw i32, ptr %call.i151, i64 %i37.0118.i %47 = load i32, ptr %arrayidx76.i, align 4 %arrayidx78.i = getelementptr inbounds nuw i32, ptr %call.i159, i64 %conv46.i %48 = load i32, ptr %arrayidx78.i, align 4 @@ -528,22 +528,22 @@ land.lhs.true104.i: ; preds = %if.then98.i br i1 %cmp109.i, label %if.then110.i, label %if.else112.i if.then110.i: ; preds = %land.lhs.true104.i - %arrayidx111.i = getelementptr inbounds i8, ptr %call.i144, i64 %i37.0118.i + %arrayidx111.i = getelementptr inbounds nuw i8, ptr %call.i144, i64 %i37.0118.i store i8 2, ptr %arrayidx111.i, align 1 br label %for.inc128.i if.else112.i: ; preds = %land.lhs.true104.i, %if.then98.i - %arrayidx113.i = getelementptr inbounds i8, ptr %call.i144, i64 %i37.0118.i + %arrayidx113.i = getelementptr inbounds nuw i8, ptr %call.i144, i64 %i37.0118.i store i8 4, ptr %arrayidx113.i, align 1 br label %for.inc128.i if.else115.i: ; preds = %land.lhs.true92.i, %land.lhs.true87.i, %land.lhs.true82.i, %if.then73.i - %arrayidx116.i = getelementptr inbounds i8, ptr %call.i144, i64 %i37.0118.i + %arrayidx116.i = getelementptr inbounds nuw i8, ptr %call.i144, i64 %i37.0118.i store i8 4, ptr %arrayidx116.i, align 1 br label %for.inc128.i if.else118.i: ; preds = %if.else67.i - %arrayidx119.i = getelementptr inbounds i8, ptr %call.i144, i64 %i37.0118.i + %arrayidx119.i = getelementptr inbounds nuw i8, ptr %call.i144, i64 %i37.0118.i store i8 4, ptr %arrayidx119.i, align 1 br label %for.inc128.i diff --git a/bench/miniaudio/optimized/unity.c.ll b/bench/miniaudio/optimized/unity.c.ll index a471dd66e45..3979fe1f5c3 100644 --- a/bench/miniaudio/optimized/unity.c.ll +++ b/bench/miniaudio/optimized/unity.c.ll @@ -9384,7 +9384,7 @@ for.body.lr.ph: ; preds = %if.then11 for.body: ; preds = %for.body.lr.ph, %for.body %iCaptureDevice.027 = phi i64 [ %conv13, %for.body.lr.ph ], [ %dec, %for.body ] %7 = load ptr, ptr %pDeviceInfos17, align 8 - %arrayidx = getelementptr inbounds %struct.ma_device_info, ptr %7, i64 %iCaptureDevice.027 + %arrayidx = getelementptr inbounds nuw %struct.ma_device_info, ptr %7, i64 %iCaptureDevice.027 %arrayidx19 = getelementptr i8, ptr %arrayidx, i64 -1544 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1544) %arrayidx, ptr noundef nonnull align 8 dereferenceable(1544) %arrayidx19, i64 1544, i1 false) %dec = add nsw i64 %iCaptureDevice.027, -1 @@ -56560,7 +56560,7 @@ for.body.i: ; preds = %if.then.i, %for.bod %mul.i52.i = fmul <4 x float> %conv.i174, splat (float 0x3E80000000000000) %conv.i172 = sitofp <4 x i32> %sub.i.i to <4 x float> %mul.i.i = fmul <4 x float> %conv.i172, splat (float 0x3E80000000000000) - %add.ptr19.i.idx = shl nsw i64 %i.i.0680, 5 + %add.ptr19.i.idx = shl nuw nsw i64 %i.i.0680, 5 %add.ptr19.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0696, i64 %add.ptr19.i.idx %shuffle.i = shufflevector <4 x float> %mul.i52.i, <4 x float> %mul.i.i, <4 x i32> store <4 x float> %shuffle.i, ptr %add.ptr19.i, align 1 @@ -56755,7 +56755,7 @@ for.body.i254: ; preds = %if.then.i100, %for. %mul.i52.i257 = fmul <4 x float> %conv.i65.i, splat (float 0x3E80000000000000) %conv.i.i = sitofp <4 x i32> %37 to <4 x float> %mul.i.i258 = fmul <4 x float> %conv.i.i, splat (float 0x3E80000000000000) - %add.ptr19.i260.idx = shl nsw i64 %i.i203.0672, 5 + %add.ptr19.i260.idx = shl nuw nsw i64 %i.i203.0672, 5 %add.ptr19.i260 = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0696, i64 %add.ptr19.i260.idx %shuffle.i.i = shufflevector <4 x float> %mul.i52.i257, <4 x float> %mul.i.i258, <4 x i32> store <4 x float> %shuffle.i.i, ptr %add.ptr19.i260, align 1 @@ -56950,7 +56950,7 @@ for.body.i395: ; preds = %for.cond.i387.prehe %mul.i167.i = fmul <4 x float> %conv.i240.i, splat (float 0x3E80000000000000) %conv.i238.i = sitofp <4 x i32> %63 to <4 x float> %mul.i164.i = fmul <4 x float> %conv.i238.i, splat (float 0x3E80000000000000) - %add.ptr24.i402.idx = shl nsw i64 %i.i365.0664, 5 + %add.ptr24.i402.idx = shl nuw nsw i64 %i.i365.0664, 5 %add.ptr24.i402 = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0696, i64 %add.ptr24.i402.idx %shuffle.i245.i = shufflevector <4 x float> %mul.i167.i, <4 x float> %mul.i164.i, <4 x i32> store <4 x float> %shuffle.i245.i, ptr %add.ptr24.i402, align 1 @@ -57025,7 +57025,7 @@ for.body72.i: ; preds = %if.else.i380, %for. %mul.i161.i = fmul <4 x float> %conv.i236.i, splat (float 0x3E80000000000000) %conv.i.i383 = sitofp <4 x i32> %78 to <4 x float> %mul.i.i384 = fmul <4 x float> %conv.i.i383, splat (float 0x3E80000000000000) - %add.ptr108.i.idx = shl nsw i64 %i.i365.2660, 5 + %add.ptr108.i.idx = shl nuw nsw i64 %i.i365.2660, 5 %add.ptr108.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0696, i64 %add.ptr108.i.idx %shuffle.i.i385 = shufflevector <4 x float> %mul.i161.i, <4 x float> %mul.i.i384, <4 x i32> store <4 x float> %shuffle.i.i385, ptr %add.ptr108.i, align 1 @@ -57375,7 +57375,7 @@ for.body.i524: ; preds = %if.then.i126, %for. %mul.i48.i = fmul <4 x float> %conv.i59.i, splat (float 0x3E80000000000000) %conv.i.i527 = sitofp <4 x i32> %111 to <4 x float> %mul.i.i528 = fmul <4 x float> %conv.i.i527, splat (float 0x3E80000000000000) - %add.ptr18.i.idx = shl nsw i64 %i.i486.0688, 5 + %add.ptr18.i.idx = shl nuw nsw i64 %i.i486.0688, 5 %add.ptr18.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0696, i64 %add.ptr18.i.idx %shuffle.i.i530 = shufflevector <4 x float> %mul.i48.i, <4 x float> %mul.i.i528, <4 x i32> store <4 x float> %shuffle.i.i530, ptr %add.ptr18.i, align 1 @@ -57766,7 +57766,7 @@ for.body.i: ; preds = %if.then.i, %for.bod %sub.i.i = sub <4 x i32> %16, %18 %19 = ashr <4 x i32> %16, splat (i32 16) %20 = ashr <4 x i32> %sub.i.i, splat (i32 16) - %add.ptr15.i.idx = shl nsw i64 %i.i.0665, 4 + %add.ptr15.i.idx = shl nuw nsw i64 %i.i.0665, 4 %add.ptr15.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0681, i64 %add.ptr15.i.idx %21 = tail call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %19, <4 x i32> %20) %22 = bitcast <8 x i16> %21 to <4 x i32> @@ -57959,7 +57959,7 @@ for.body.i215: ; preds = %if.then.i99, %for.b %add.i.i = add <4 x i32> %42, %40 %43 = ashr <4 x i32> %add.i.i, splat (i32 16) %44 = ashr <4 x i32> %42, splat (i32 16) - %add.ptr15.i219.idx = shl nsw i64 %i.i182.0657, 4 + %add.ptr15.i219.idx = shl nuw nsw i64 %i.i182.0657, 4 %add.ptr15.i219 = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0681, i64 %add.ptr15.i219.idx %45 = tail call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %43, <4 x i32> %44) %46 = bitcast <8 x i16> %45 to <4 x i32> @@ -58152,7 +58152,7 @@ for.body.i346: ; preds = %for.cond.i337.prehe %sub.i161.i = sub <4 x i32> %71, %68 %72 = ashr <4 x i32> %add.i170.i, splat (i32 17) %73 = ashr <4 x i32> %sub.i161.i, splat (i32 17) - %add.ptr21.i.idx = shl nsw i64 %i.i318.0649, 4 + %add.ptr21.i.idx = shl nuw nsw i64 %i.i318.0649, 4 %add.ptr21.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0681, i64 %add.ptr21.i.idx %74 = tail call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %72, <4 x i32> %73) %75 = bitcast <8 x i16> %74 to <4 x i32> @@ -58225,7 +58225,7 @@ for.body63.i: ; preds = %if.else.i327, %for. %91 = tail call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %sub.i.i331, i32 %sub.i375) %92 = ashr <4 x i32> %90, splat (i32 16) %93 = ashr <4 x i32> %91, splat (i32 16) - %add.ptr95.i.idx = shl nsw i64 %i.i318.2645, 4 + %add.ptr95.i.idx = shl nuw nsw i64 %i.i318.2645, 4 %add.ptr95.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0681, i64 %add.ptr95.i.idx %94 = tail call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %92, <4 x i32> %93) %95 = bitcast <8 x i16> %94 to <4 x i32> @@ -58573,7 +58573,7 @@ for.body.i451: ; preds = %if.then.i125, %for. %129 = tail call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %128, i32 %add6.i440) %130 = ashr <4 x i32> %127, splat (i32 16) %131 = ashr <4 x i32> %129, splat (i32 16) - %add.ptr14.i.idx = shl nsw i64 %i.i421.0673, 4 + %add.ptr14.i.idx = shl nuw nsw i64 %i.i421.0673, 4 %add.ptr14.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0681, i64 %add.ptr14.i.idx %132 = tail call <8 x i16> @llvm.x86.sse2.packssdw.128(<4 x i32> %130, <4 x i32> %131) %133 = bitcast <8 x i16> %132 to <4 x i32> @@ -58964,7 +58964,7 @@ for.body.i: ; preds = %if.then.i, %for.bod %17 = load <4 x i32>, ptr %add.ptr9.i, align 1 %18 = tail call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %17, i32 %add6.i) %sub.i177 = sub <4 x i32> %16, %18 - %add.ptr13.i.idx = shl nsw i64 %i.i.0612, 5 + %add.ptr13.i.idx = shl nuw nsw i64 %i.i.0612, 5 %add.ptr13.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0628, i64 %add.ptr13.i.idx %shuffle.i = shufflevector <4 x i32> %16, <4 x i32> %sub.i177, <4 x i32> store <4 x i32> %shuffle.i, ptr %add.ptr13.i, align 1 @@ -59129,7 +59129,7 @@ for.body.i226: ; preds = %if.then.i98, %for.b %36 = load <4 x i32>, ptr %add.ptr9.i228, align 1 %37 = tail call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %36, i32 %add6.i213) %add.i311 = add <4 x i32> %37, %35 - %add.ptr13.i230.idx = shl nsw i64 %i.i193.0604, 5 + %add.ptr13.i230.idx = shl nuw nsw i64 %i.i193.0604, 5 %add.ptr13.i230 = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0628, i64 %add.ptr13.i230.idx %shuffle.i.i = shufflevector <4 x i32> %add.i311, <4 x i32> %37, <4 x i32> store <4 x i32> %shuffle.i.i, ptr %add.ptr13.i230, align 1 @@ -59296,7 +59296,7 @@ for.body.i342: ; preds = %for.cond.i334.prehe %62 = ashr <4 x i32> %add.i183.i, splat (i32 1) %sub.i159.i = sub <4 x i32> %61, %58 %63 = ashr <4 x i32> %sub.i159.i, splat (i32 1) - %add.ptr19.i.idx = shl nsw i64 %i.i322.0596, 5 + %add.ptr19.i.idx = shl nuw nsw i64 %i.i322.0596, 5 %add.ptr19.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0628, i64 %add.ptr19.i.idx %shuffle.i172.i = shufflevector <4 x i32> %62, <4 x i32> %63, <4 x i32> store <4 x i32> %shuffle.i172.i, ptr %add.ptr19.i, align 1 @@ -59363,7 +59363,7 @@ for.body62.i: ; preds = %if.else.i331, %for. %77 = tail call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %add.i.i, i32 %sub.i372) %sub.i.i = sub <4 x i32> %76, %73 %78 = tail call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %sub.i.i, i32 %sub.i372) - %add.ptr92.i.idx = shl nsw i64 %i.i322.2592, 5 + %add.ptr92.i.idx = shl nuw nsw i64 %i.i322.2592, 5 %add.ptr92.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0628, i64 %add.ptr92.i.idx %shuffle.i.i332 = shufflevector <4 x i32> %77, <4 x i32> %78, <4 x i32> store <4 x i32> %shuffle.i.i332, ptr %add.ptr92.i, align 1 @@ -59667,7 +59667,7 @@ for.body.i472: ; preds = %if.then.i124, %for. %add.ptr9.i474 = getelementptr inbounds nuw <2 x i64>, ptr %add.ptr41, i64 %i.i442.0620 %110 = load <4 x i32>, ptr %add.ptr9.i474, align 1 %111 = tail call <4 x i32> @llvm.x86.sse2.pslli.d(<4 x i32> %110, i32 %add6.i461) - %add.ptr12.i.idx = shl nsw i64 %i.i442.0620, 5 + %add.ptr12.i.idx = shl nuw nsw i64 %i.i442.0620, 5 %add.ptr12.i = getelementptr inbounds nuw i8, ptr %pBufferOut.addr.0628, i64 %add.ptr12.i.idx %shuffle.i.i476 = shufflevector <4 x i32> %109, <4 x i32> %111, <4 x i32> store <4 x i32> %shuffle.i.i476, ptr %add.ptr12.i, align 1 @@ -70855,10 +70855,10 @@ if.end9: ; preds = %if.then2.i, %if.end if.then12: ; preds = %if.end9 %state = getelementptr inbounds nuw i8, ptr %pNoise, i64 112 store ptr %pHeap, ptr %state, align 8 - %add.ptr14 = getelementptr inbounds i8, ptr %pHeap, i64 %heapLayout.sroa.10.05573 + %add.ptr14 = getelementptr inbounds nuw i8, ptr %pHeap, i64 %heapLayout.sroa.10.05573 %accumulation = getelementptr inbounds nuw i8, ptr %pNoise, i64 120 store ptr %add.ptr14, ptr %accumulation, align 8 - %add.ptr17 = getelementptr inbounds i8, ptr %pHeap, i64 %heapLayout.sroa.12.05672 + %add.ptr17 = getelementptr inbounds nuw i8, ptr %pHeap, i64 %heapLayout.sroa.12.05672 %counter = getelementptr inbounds nuw i8, ptr %pNoise, i64 128 store ptr %add.ptr17, ptr %counter, align 8 %6 = load i32, ptr %channels.i, align 4 @@ -138232,7 +138232,7 @@ for.body.i.preheader: ; preds = %if.end26.i.thread, for.body.i: ; preds = %for.body.i.preheader, %for.body.i %i.i.0114 = phi i64 [ %sub34.i, %for.body.i ], [ %div.i111, %for.body.i.preheader ] %sub34.i = add nsw i64 %i.i.0114, -1 - %arrayidx35.i = getelementptr inbounds [512 x i64], ptr %cacheL27.i, i64 0, i64 %sub34.i + %arrayidx35.i = getelementptr inbounds nuw [512 x i64], ptr %cacheL27.i, i64 0, i64 %sub34.i %29 = load i64, ptr %arrayidx35.i, align 8 %add.i = add nsw i64 %sub34.i, %sub30.i %arrayidx38.i = getelementptr inbounds [512 x i64], ptr %cacheL27.i, i64 0, i64 %add.i diff --git a/bench/mitsuba3/optimized/jitallocator.cpp.ll b/bench/mitsuba3/optimized/jitallocator.cpp.ll index 3603e433245..39ca6ccdafa 100644 --- a/bench/mitsuba3/optimized/jitallocator.cpp.ll +++ b/bench/mitsuba3/optimized/jitallocator.cpp.ll @@ -567,10 +567,10 @@ define dso_local void @_ZNK6asmjit9_abi_1_1012JitAllocator10statisticsEv(ptr dea %43 = getelementptr inbounds %"class.asmjit::_abi_1_10::JitAllocatorPool", ptr %14, <4 x i64> %39 %44 = getelementptr inbounds %"class.asmjit::_abi_1_10::JitAllocatorPool", ptr %14, <4 x i64> %40 %45 = getelementptr inbounds %"class.asmjit::_abi_1_10::JitAllocatorPool", ptr %14, <4 x i64> %41 - %46 = getelementptr inbounds i8, <4 x ptr> %42, i64 24 - %47 = getelementptr inbounds i8, <4 x ptr> %43, i64 24 - %48 = getelementptr inbounds i8, <4 x ptr> %44, i64 24 - %49 = getelementptr inbounds i8, <4 x ptr> %45, i64 24 + %46 = getelementptr inbounds nuw i8, <4 x ptr> %42, i64 24 + %47 = getelementptr inbounds nuw i8, <4 x ptr> %43, i64 24 + %48 = getelementptr inbounds nuw i8, <4 x ptr> %44, i64 24 + %49 = getelementptr inbounds nuw i8, <4 x ptr> %45, i64 24 %50 = tail call <4 x i32> @llvm.masked.gather.v4i32.v4p0(<4 x ptr> %46, i32 8, <4 x i1> splat (i1 true), <4 x i32> poison), !tbaa !67 %51 = tail call <4 x i32> @llvm.masked.gather.v4i32.v4p0(<4 x ptr> %47, i32 8, <4 x i1> splat (i1 true), <4 x i32> poison), !tbaa !67 %52 = tail call <4 x i32> @llvm.masked.gather.v4i32.v4p0(<4 x ptr> %48, i32 8, <4 x i1> splat (i1 true), <4 x i32> poison), !tbaa !67 @@ -583,10 +583,10 @@ define dso_local void @_ZNK6asmjit9_abi_1_1012JitAllocator10statisticsEv(ptr dea %59 = add <4 x i64> %32, %55 %60 = add <4 x i64> %33, %56 %61 = add <4 x i64> %34, %57 - %62 = getelementptr inbounds i8, <4 x ptr> %42, i64 32 - %63 = getelementptr inbounds i8, <4 x ptr> %43, i64 32 - %64 = getelementptr inbounds i8, <4 x ptr> %44, i64 32 - %65 = getelementptr inbounds i8, <4 x ptr> %45, i64 32 + %62 = getelementptr inbounds nuw i8, <4 x ptr> %42, i64 32 + %63 = getelementptr inbounds nuw i8, <4 x ptr> %43, i64 32 + %64 = getelementptr inbounds nuw i8, <4 x ptr> %44, i64 32 + %65 = getelementptr inbounds nuw i8, <4 x ptr> %45, i64 32 %66 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %62, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !68 %67 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %63, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !68 %68 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %64, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !68 @@ -667,10 +667,10 @@ define dso_local void @_ZNK6asmjit9_abi_1_1012JitAllocator10statisticsEv(ptr dea %143 = add <4 x i64> %139, %27 %144 = add <4 x i64> %140, %28 %145 = add <4 x i64> %141, %29 - %146 = getelementptr inbounds i8, <4 x ptr> %42, i64 40 - %147 = getelementptr inbounds i8, <4 x ptr> %43, i64 40 - %148 = getelementptr inbounds i8, <4 x ptr> %44, i64 40 - %149 = getelementptr inbounds i8, <4 x ptr> %45, i64 40 + %146 = getelementptr inbounds nuw i8, <4 x ptr> %42, i64 40 + %147 = getelementptr inbounds nuw i8, <4 x ptr> %43, i64 40 + %148 = getelementptr inbounds nuw i8, <4 x ptr> %44, i64 40 + %149 = getelementptr inbounds nuw i8, <4 x ptr> %45, i64 40 %150 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %146, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !74 %151 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %147, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !74 %152 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %148, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !74 @@ -683,10 +683,10 @@ define dso_local void @_ZNK6asmjit9_abi_1_1012JitAllocator10statisticsEv(ptr dea %159 = add <4 x i64> %155, %36 %160 = add <4 x i64> %156, %37 %161 = add <4 x i64> %157, %38 - %162 = getelementptr inbounds i8, <4 x ptr> %42, i64 48 - %163 = getelementptr inbounds i8, <4 x ptr> %43, i64 48 - %164 = getelementptr inbounds i8, <4 x ptr> %44, i64 48 - %165 = getelementptr inbounds i8, <4 x ptr> %45, i64 48 + %162 = getelementptr inbounds nuw i8, <4 x ptr> %42, i64 48 + %163 = getelementptr inbounds nuw i8, <4 x ptr> %43, i64 48 + %164 = getelementptr inbounds nuw i8, <4 x ptr> %44, i64 48 + %165 = getelementptr inbounds nuw i8, <4 x ptr> %45, i64 48 %166 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %162, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !69 %167 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %163, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !69 %168 = tail call <4 x i64> @llvm.masked.gather.v4i64.v4p0(<4 x ptr> %164, i32 8, <4 x i1> splat (i1 true), <4 x i64> poison), !tbaa !69 @@ -2353,7 +2353,7 @@ define linkonce_odr hidden void @_ZN6asmjit9_abi_1_108ZoneTreeINS0_17JitAllocato %69 = inttoptr i64 %68 to ptr %70 = icmp eq ptr %16, %69 %71 = zext i1 %70 to i64 - %72 = getelementptr inbounds [2 x i64], ptr %17, i64 0, i64 %21 + %72 = getelementptr inbounds nuw [2 x i64], ptr %17, i64 0, i64 %21 %73 = load i64, ptr %72, align 8, !tbaa !51 %74 = and i64 %73, -2 %75 = inttoptr i64 %74 to ptr @@ -2801,7 +2801,7 @@ define linkonce_odr hidden void @_ZN6asmjit9_abi_1_108ZoneTreeINS0_17JitAllocato %234 = phi i64 [ %228, %227 ], [ %248, %.preheader ] %235 = phi ptr [ %221, %227 ], [ %244, %.preheader ] %236 = phi i64 [ %230, %227 ], [ %250, %.preheader ] - %237 = getelementptr inbounds [2 x i64], ptr %235, i64 0, i64 %234 + %237 = getelementptr inbounds nuw [2 x i64], ptr %235, i64 0, i64 %234 %238 = and i64 %236, 1 %239 = or disjoint i64 %238, %19 store i64 %239, ptr %237, align 8, !tbaa !51 diff --git a/bench/openexr/optimized/internal_huf.c.ll b/bench/openexr/optimized/internal_huf.c.ll index 951c5f73a50..566473dd93d 100644 --- a/bench/openexr/optimized/internal_huf.c.ll +++ b/bench/openexr/optimized/internal_huf.c.ll @@ -229,7 +229,7 @@ if.end3.split.preheader.i.i: ; preds = %adjust_heap.exit.i. if.end3.split.i.i: ; preds = %adjust_heap.exit60.i.i, %if.end3.split.preheader.i.i %parent.063.i.i = phi i64 [ %dec.i.i, %adjust_heap.exit60.i.i ], [ %div9.i.i, %if.end3.split.preheader.i.i ] %dec.i.i = add nsw i64 %parent.063.i.i, -1 - %add.ptr8.i.i = getelementptr inbounds ptr, ptr %add.ptr9, i64 %dec.i.i + %add.ptr8.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr9, i64 %dec.i.i %16 = load ptr, ptr %add.ptr8.i.i, align 8 %cmp27.i12.i.i = icmp samesign ult i64 %dec.i.i, %div23.i.i.i br i1 %cmp27.i12.i.i, label %while.body.i44.i.i, label %while.end.i13.i.i @@ -1355,6 +1355,7 @@ for.end200.i: ; preds = %for.body193.prehead br i1 %cmp7.not172.i, label %for.end249.i, label %for.body207.lr.ph.i for.body207.lr.ph.i: ; preds = %for.end200.i + %conv218.i = zext nneg i32 %add82.i to i64 %_idToSymbol.i = getelementptr inbounds nuw i8, ptr %spare, i64 12 br label %for.body207.i @@ -1397,8 +1398,6 @@ if.then211.i: ; preds = %fasthuf_read_bits.e if.end215.i: ; preds = %if.then211.i %arrayidx216.i = getelementptr inbounds nuw [59 x i64], ptr %mapping.i, i64 0, i64 %and.i117.i %35 = load i64, ptr %arrayidx216.i, align 8 - %36 = load i32, ptr %_numSymbols.i, align 4 - %conv218.i = zext i32 %36 to i64 %cmp219.not.i = icmp ult i64 %35, %conv218.i br i1 %cmp219.not.i, label %if.end227.i, label %if.then221.i @@ -1408,7 +1407,7 @@ if.then221.i: ; preds = %if.end215.i if.end227.i: ; preds = %if.end215.i %conv228.i = trunc nuw nsw i64 %symbol201.0199.i to i32 - %arrayidx230.i = getelementptr inbounds [65537 x i32], ptr %_idToSymbol.i, i64 0, i64 %35 + %arrayidx230.i = getelementptr inbounds nuw [65537 x i32], ptr %_idToSymbol.i, i64 0, i64 %35 store i32 %conv228.i, ptr %arrayidx230.i, align 4 %inc232.i = add nuw nsw i64 %35, 1 store i64 %inc232.i, ptr %arrayidx216.i, align 8 @@ -1423,18 +1422,18 @@ if.then236.i: ; preds = %if.else233.i br i1 %cmp8.i126.i, label %fasthuf_read_bits.exit139.loopexit.i, label %fasthuf_read_bits.exit139.i fasthuf_read_bits.exit139.loopexit.i: ; preds = %if.then236.i - %37 = shl i64 %currBits.10.i, 8 - %38 = add nuw nsw i32 %.lcssa.i113.i, 2 - %39 = load i8, ptr %currByte.10.i, align 1 - %conv.i135.i = zext i8 %39 to i64 - %or.i136.i = or disjoint i64 %37, %conv.i135.i + %36 = shl i64 %currBits.10.i, 8 + %37 = add nuw nsw i32 %.lcssa.i113.i, 2 + %38 = load i8, ptr %currByte.10.i, align 1 + %conv.i135.i = zext i8 %38 to i64 + %or.i136.i = or disjoint i64 %36, %conv.i135.i %incdec.ptr.i134.i = getelementptr inbounds nuw i8, ptr %currByte.10.i, i64 1 br label %fasthuf_read_bits.exit139.i fasthuf_read_bits.exit139.i: ; preds = %fasthuf_read_bits.exit139.loopexit.i, %if.then236.i %currByte.12.i = phi ptr [ %currByte.10.i, %if.then236.i ], [ %incdec.ptr.i134.i, %fasthuf_read_bits.exit139.loopexit.i ] %currBits.12.i = phi i64 [ %currBits.10.i, %if.then236.i ], [ %or.i136.i, %fasthuf_read_bits.exit139.loopexit.i ] - %.lcssa.i127.i = phi i32 [ %sub.i114.i, %if.then236.i ], [ %38, %fasthuf_read_bits.exit139.loopexit.i ] + %.lcssa.i127.i = phi i32 [ %sub.i114.i, %if.then236.i ], [ %37, %fasthuf_read_bits.exit139.loopexit.i ] %sub.i128.i = add nsw i32 %.lcssa.i127.i, -8 %sh_prom.i129.i = zext nneg i32 %sub.i128.i to i64 %shr.i130.i = lshr i64 %currBits.12.i, %sh_prom.i129.i @@ -1465,10 +1464,10 @@ for.end249.i: ; preds = %for.inc247.i, %for. for.body.i.i: ; preds = %for.body.i.i, %for.end249.i %indvars.iv.i.i = phi i64 [ 0, %for.end249.i ], [ %indvars.iv.next.i.i, %for.body.i.i ] %arrayidx.i.i = getelementptr inbounds nuw i64, ptr %base.i, i64 %indvars.iv.i.i - %40 = load i64, ptr %arrayidx.i.i, align 8 - %cmp1.not.i.i = icmp eq i64 %40, -1 - %41 = sub nuw nsw i64 64, %indvars.iv.i.i - %shl.i140.i = shl i64 %40, %41 + %39 = load i64, ptr %arrayidx.i.i, align 8 + %cmp1.not.i.i = icmp eq i64 %39, -1 + %40 = sub nuw nsw i64 64, %indvars.iv.i.i + %shl.i140.i = shl i64 %39, %40 %shl.sink.i.i = select i1 %cmp1.not.i.i, i64 -1, i64 %shl.i140.i %arrayidx5.i.i = getelementptr inbounds nuw [60 x i64], ptr %_ljBase.i.i, i64 0, i64 %indvars.iv.i.i store i64 %shl.sink.i.i, ptr %arrayidx5.i.i, align 8 @@ -1479,24 +1478,21 @@ for.body.i.i: ; preds = %for.body.i.i, %for. for.end.i.i: ; preds = %for.body.i.i %arrayidx10.i.i = getelementptr inbounds nuw i8, ptr %spare, i64 262632 store i64 0, ptr %arrayidx10.i.i, align 8 - %42 = load i64, ptr %offset.i, align 16 - %43 = load i64, ptr %_ljBase.i.i, align 8 - %sub14.i.i = sub i64 %42, %43 + %41 = load i64, ptr %offset.i, align 16 + %42 = load i64, ptr %_ljBase.i.i, align 8 + %sub14.i.i = sub i64 %41, %42 %_ljOffset.i.i = getelementptr inbounds nuw i8, ptr %spare, i64 262640 store i64 %sub14.i.i, ptr %_ljOffset.i.i, align 8 br label %for.body19.i.i for.cond35.preheader.i.i: ; preds = %for.body19.i.i %_lookupSymbol.i.i = getelementptr inbounds nuw i8, ptr %spare, i64 263112 - %44 = load i8, ptr %_minCodeLength.i, align 8 - %45 = load i8, ptr %_maxCodeLength.i, align 1 - %cmp42.not55.i.i = icmp ugt i8 %44, %45 %_idToSymbol.i.i = getelementptr inbounds nuw i8, ptr %spare, i64 12 - br i1 %cmp42.not55.i.i, label %for.body37.us.i.i, label %for.body37.preheader.i.i + br i1 %cmp102.not180.i, label %for.body37.us.i.i, label %for.body37.preheader.i.i for.body37.preheader.i.i: ; preds = %for.cond35.preheader.i.i - %conv41.i.i = zext i8 %45 to i64 - %46 = zext i8 %44 to i64 + %43 = zext i8 %5 to i64 + %conv57.i.i = zext nneg i32 %add82.i to i64 br label %for.body37.i.i for.body37.us.i.i: ; preds = %for.cond35.preheader.i.i, %for.body37.us.i.i @@ -1510,12 +1506,12 @@ for.body37.us.i.i: ; preds = %for.cond35.preheade for.body19.i.i: ; preds = %for.body19.i.i, %for.end.i.i %indvars.iv65.i.i = phi i64 [ 1, %for.end.i.i ], [ %indvars.iv.next66.i.i, %for.body19.i.i ] %arrayidx21.i.i = getelementptr inbounds nuw i64, ptr %offset.i, i64 %indvars.iv65.i.i - %47 = load i64, ptr %arrayidx21.i.i, align 8 + %44 = load i64, ptr %arrayidx21.i.i, align 8 %arrayidx24.i.i = getelementptr inbounds nuw [60 x i64], ptr %_ljBase.i.i, i64 0, i64 %indvars.iv65.i.i - %48 = load i64, ptr %arrayidx24.i.i, align 8 - %49 = sub nuw nsw i64 64, %indvars.iv65.i.i - %shr.i141.i = lshr i64 %48, %49 - %sub27.i.i = sub i64 %47, %shr.i141.i + %45 = load i64, ptr %arrayidx24.i.i, align 8 + %46 = sub nuw nsw i64 64, %indvars.iv65.i.i + %shr.i141.i = lshr i64 %45, %46 + %sub27.i.i = sub i64 %44, %shr.i141.i %arrayidx30.i.i = getelementptr inbounds nuw [59 x i64], ptr %_ljOffset.i.i, i64 0, i64 %indvars.iv65.i.i store i64 %sub27.i.i, ptr %arrayidx30.i.i, align 8 %indvars.iv.next66.i.i = add nuw nsw i64 %indvars.iv65.i.i, 1 @@ -1530,30 +1526,28 @@ for.body37.i.i: ; preds = %for.inc73.i.i, %for br label %for.body44.i.i for.body44.i.i: ; preds = %for.inc70.i.i, %for.body37.i.i - %indvars.iv70.i.i = phi i64 [ %46, %for.body37.i.i ], [ %indvars.iv.next71.i.i, %for.inc70.i.i ] + %indvars.iv70.i.i = phi i64 [ %43, %for.body37.i.i ], [ %indvars.iv.next71.i.i, %for.inc70.i.i ] %arrayidx47.i.i = getelementptr inbounds nuw [60 x i64], ptr %_ljBase.i.i, i64 0, i64 %indvars.iv70.i.i - %50 = load i64, ptr %arrayidx47.i.i, align 8 - %cmp48.not.i.i = icmp ugt i64 %50, %shl38.i.i + %47 = load i64, ptr %arrayidx47.i.i, align 8 + %cmp48.not.i.i = icmp ugt i64 %47, %shl38.i.i br i1 %cmp48.not.i.i, label %for.inc70.i.i, label %if.then50.i.i if.then50.i.i: ; preds = %for.body44.i.i %arrayidx53.i.i = getelementptr inbounds nuw [59 x i64], ptr %_ljOffset.i.i, i64 0, i64 %indvars.iv70.i.i - %51 = load i64, ptr %arrayidx53.i.i, align 8 + %48 = load i64, ptr %arrayidx53.i.i, align 8 %sub54.i.i = sub nsw i64 64, %indvars.iv70.i.i %sh_prom55.i.i = and i64 %sub54.i.i, 4294967295 %shr56.i.i = lshr i64 %shl38.i.i, %sh_prom55.i.i - %add.i142.i = add i64 %51, %shr56.i.i - %52 = load i32, ptr %_numSymbols.i, align 4 - %conv57.i.i = zext i32 %52 to i64 + %add.i142.i = add i64 %48, %shr56.i.i %cmp58.i.i = icmp ult i64 %add.i142.i, %conv57.i.i br i1 %cmp58.i.i, label %if.then60.i.i, label %if.else65.i.i if.then60.i.i: ; preds = %if.then50.i.i - %53 = trunc nuw nsw i64 %indvars.iv70.i.i to i32 - %arrayidx61.i.i = getelementptr inbounds [65537 x i32], ptr %_idToSymbol.i.i, i64 0, i64 %add.i142.i - %54 = load i32, ptr %arrayidx61.i.i, align 4 - %shl62.i.i = shl nuw i32 %53, 24 - %or.i143.i = or i32 %54, %shl62.i.i + %49 = trunc nuw nsw i64 %indvars.iv70.i.i to i32 + %arrayidx61.i.i = getelementptr inbounds nuw [65537 x i32], ptr %_idToSymbol.i.i, i64 0, i64 %add.i142.i + %50 = load i32, ptr %arrayidx61.i.i, align 4 + %shl62.i.i = shl nuw i32 %49, 24 + %or.i143.i = or i32 %50, %shl62.i.i store i32 %or.i143.i, ptr %arrayidx39.i.i, align 4 br label %for.inc73.i.i @@ -1563,7 +1557,7 @@ if.else65.i.i: ; preds = %if.then50.i.i for.inc70.i.i: ; preds = %for.body44.i.i %indvars.iv.next71.i.i = add nuw nsw i64 %indvars.iv70.i.i, 1 - %exitcond73.not.i.i = icmp eq i64 %indvars.iv70.i.i, %conv41.i.i + %exitcond73.not.i.i = icmp eq i64 %indvars.iv70.i.i, %.pre br i1 %exitcond73.not.i.i, label %for.inc73.i.i, label %for.body44.i.i, !llvm.loop !29 for.inc73.i.i: ; preds = %for.inc70.i.i, %if.then60.i.i @@ -1578,8 +1572,8 @@ land.rhs.i.i: ; preds = %land.rhs.i.i.prehea %minIdx.058.i.i = phi i32 [ %dec.i.i, %while.body.i144.i ], [ 14, %land.rhs.i.i.preheader ] %idxprom79.i.i = zext nneg i32 %minIdx.058.i.i to i64 %arrayidx80.i.i = getelementptr inbounds nuw [60 x i64], ptr %_ljBase.i.i, i64 0, i64 %idxprom79.i.i - %55 = load i64, ptr %arrayidx80.i.i, align 8 - %cmp81.i.i = icmp eq i64 %55, -1 + %51 = load i64, ptr %arrayidx80.i.i, align 8 + %cmp81.i.i = icmp eq i64 %51, -1 br i1 %cmp81.i.i, label %while.body.i144.i, label %if.then31 while.body.i144.i: ; preds = %land.rhs.i.i @@ -1590,8 +1584,8 @@ while.body.i144.i: ; preds = %land.rhs.i.i fasthuf_initialize.exit.thread.sink.split: ; preds = %if.else65.i.i, %if.then221.i, %if.then90.i, %if.then63.i, %if.then45.i, %if.then.i %.str.sink = phi ptr [ @.str, %if.then.i ], [ @.str, %if.then45.i ], [ @.str.1, %if.then63.i ], [ @.str.2, %if.then90.i ], [ @.str.3, %if.then221.i ], [ @.str.4, %if.else65.i.i ] %print_error.i = getelementptr inbounds nuw i8, ptr %pctxt.0, i64 72 - %56 = load ptr, ptr %print_error.i, align 8 - %call.i = tail call i32 (ptr, i32, ptr, ...) %56(ptr noundef nonnull %pctxt.0, i32 noundef 23, ptr noundef nonnull %.str.sink) #10 + %52 = load ptr, ptr %print_error.i, align 8 + %call.i = tail call i32 (ptr, i32, ptr, ...) %52(ptr noundef nonnull %pctxt.0, i32 noundef 23, ptr noundef nonnull %.str.sink) #10 br label %fasthuf_initialize.exit.thread fasthuf_initialize.exit.thread: ; preds = %fasthuf_initialize.exit.thread.sink.split, %if.then.i, %if.then45.i, %if.then63.i, %if.then90.i, %if.then221.i, %if.else65.i.i @@ -1602,9 +1596,9 @@ fasthuf_initialize.exit.thread: ; preds = %fasthuf_initialize. br label %return if.then31: ; preds = %while.body.i144.i, %land.rhs.i.i - %57 = phi i64 [ %43, %while.body.i144.i ], [ %55, %land.rhs.i.i ] + %53 = phi i64 [ %42, %while.body.i144.i ], [ %51, %land.rhs.i.i ] %_tableMin90.i.i = getelementptr inbounds nuw i8, ptr %spare, i64 328648 - store i64 %57, ptr %_tableMin90.i.i, align 8 + store i64 %53, ptr %_tableMin90.i.i, align 8 call void @llvm.lifetime.end.p0(i64 472, ptr nonnull %base.i) call void @llvm.lifetime.end.p0(i64 472, ptr nonnull %offset.i) call void @llvm.lifetime.end.p0(i64 472, ptr nonnull %codeCount.i) @@ -1634,7 +1628,7 @@ if.else.for.end.i_crit_edge: ; preds = %if.else for.body.lr.ph.i: ; preds = %if.else %add29.i = add nuw nsw i32 %2, 1 %conv30.i = zext nneg i32 %add29.i to i64 - %58 = ptrtoint ptr %add.ptr17 to i64 + %54 = ptrtoint ptr %add.ptr17 to i64 br label %for.body.i for.body.i: ; preds = %for.inc.i, %for.body.lr.ph.i @@ -1646,16 +1640,16 @@ for.body.i: ; preds = %for.inc.i, %for.bod br i1 %cmp1.i, label %land.lhs.true.i, label %getBits.exit.i land.lhs.true.i: ; preds = %for.body.i - %59 = ptrtoint ptr %p.069.i to i64 - %sub.i53 = sub i64 %59, %58 + %55 = ptrtoint ptr %p.069.i to i64 + %sub.i53 = sub i64 %55, %54 %cmp2.not.i = icmp ult i64 %sub.i53, %sub41 br i1 %cmp2.not.i, label %while.body.i.i54, label %hufUnpackEncTable.exit while.body.i.i54: ; preds = %land.lhs.true.i %shl.i.i55 = shl i64 %c.070.i, 8 %incdec.ptr.i.i56 = getelementptr inbounds nuw i8, ptr %p.069.i, i64 1 - %60 = load i8, ptr %p.069.i, align 1 - %conv.i.i57 = zext i8 %60 to i64 + %56 = load i8, ptr %p.069.i, align 1 + %conv.i.i57 = zext i8 %56 to i64 %or.i.i58 = or disjoint i64 %shl.i.i55, %conv.i.i57 %add.i.i59 = or disjoint i32 %lc.071.i, 8 br label %getBits.exit.i, !llvm.loop !31 @@ -1679,16 +1673,16 @@ if.then4.i: ; preds = %getBits.exit.i br i1 %cmp6.i, label %land.lhs.true7.i, label %getBits.exit42.i land.lhs.true7.i: ; preds = %if.then4.i - %61 = ptrtoint ptr %in.0.lcssa.i.i to i64 - %sub5.i = sub i64 %61, %58 + %57 = ptrtoint ptr %in.0.lcssa.i.i to i64 + %sub5.i = sub i64 %57, %54 %cmp8.not.i = icmp ult i64 %sub5.i, %sub41 br i1 %cmp8.not.i, label %while.body.i34.i, label %hufUnpackEncTable.exit while.body.i34.i: ; preds = %land.lhs.true7.i %shl.i36.i = shl i64 %c.3.i, 8 %incdec.ptr.i37.i = getelementptr inbounds nuw i8, ptr %in.0.lcssa.i.i, i64 1 - %62 = load i8, ptr %in.0.lcssa.i.i, align 1 - %conv.i38.i = zext i8 %62 to i64 + %58 = load i8, ptr %in.0.lcssa.i.i, align 1 + %conv.i38.i = zext i8 %58 to i64 %or.i39.i = or disjoint i64 %shl.i36.i, %conv.i38.i %add.i40.i = add nuw nsw i32 %lc.3.i, 2 br label %getBits.exit42.i, !llvm.loop !31 @@ -1751,7 +1745,7 @@ for.inc.i: ; preds = %while.body38.i, %wh br i1 %cmp.not.i, label %for.end.i, label %for.body.i, !llvm.loop !34 for.end.i: ; preds = %for.inc.i, %if.else.for.end.i_crit_edge - %.pre-phi = phi i64 [ %.pre88, %if.else.for.end.i_crit_edge ], [ %58, %for.inc.i ] + %.pre-phi = phi i64 [ %.pre88, %if.else.for.end.i_crit_edge ], [ %54, %for.inc.i ] %p.0.lcssa.i = phi ptr [ %add.ptr17, %if.else.for.end.i_crit_edge ], [ %p.1.i, %for.inc.i ] %sub47.neg.i = add i64 %sub41, %.pre-phi call void @llvm.lifetime.start.p0(i64 472, ptr nonnull %n.i.i) @@ -1761,25 +1755,25 @@ for.end.i: ; preds = %for.inc.i, %if.else for.body4.i.i: ; preds = %for.body4.i.i, %for.end.i %indvars.iv.i.i46 = phi i64 [ 0, %for.end.i ], [ %indvars.iv.next.i.i47, %for.body4.i.i ] %arrayidx6.i.i = getelementptr inbounds nuw i64, ptr %spare, i64 %indvars.iv.i.i46 - %63 = load i64, ptr %arrayidx6.i.i, align 8 - %arrayidx7.i.i = getelementptr inbounds [59 x i64], ptr %n.i.i, i64 0, i64 %63 - %64 = load i64, ptr %arrayidx7.i.i, align 8 - %add.i43.i = add i64 %64, 1 + %59 = load i64, ptr %arrayidx6.i.i, align 8 + %arrayidx7.i.i = getelementptr inbounds [59 x i64], ptr %n.i.i, i64 0, i64 %59 + %60 = load i64, ptr %arrayidx7.i.i, align 8 + %add.i43.i = add i64 %60, 1 store i64 %add.i43.i, ptr %arrayidx7.i.i, align 8 %indvars.iv.next.i.i47 = add nuw nsw i64 %indvars.iv.i.i46, 1 %exitcond.not.i.i48 = icmp eq i64 %indvars.iv.next.i.i47, 65537 br i1 %exitcond.not.i.i48, label %for.body14.i.i.preheader, label %for.body4.i.i, !llvm.loop !11 for.body14.i.i.preheader: ; preds = %for.body4.i.i - %65 = ptrtoint ptr %p.0.lcssa.i to i64 + %61 = ptrtoint ptr %p.0.lcssa.i to i64 br label %for.body14.i.i for.body14.i.i: ; preds = %for.body14.i.i.preheader, %for.body14.i.i %indvars.iv23.i.i = phi i64 [ %indvars.iv.next24.i.i, %for.body14.i.i ], [ 58, %for.body14.i.i.preheader ] %c.019.i.i = phi i64 [ %shr.i44.i, %for.body14.i.i ], [ 0, %for.body14.i.i.preheader ] %arrayidx16.i.i = getelementptr inbounds nuw [59 x i64], ptr %n.i.i, i64 0, i64 %indvars.iv23.i.i - %66 = load i64, ptr %arrayidx16.i.i, align 8 - %add17.i.i = add i64 %66, %c.019.i.i + %62 = load i64, ptr %arrayidx16.i.i, align 8 + %add17.i.i = add i64 %62, %c.019.i.i %shr.i44.i = lshr i64 %add17.i.i, 1 store i64 %c.019.i.i, ptr %arrayidx16.i.i, align 8 %indvars.iv.next24.i.i = add nsw i64 %indvars.iv23.i.i, -1 @@ -1789,17 +1783,17 @@ for.body14.i.i: ; preds = %for.body14.i.i.preh for.body25.i.i: ; preds = %for.body14.i.i, %for.inc33.i.i %indvars.iv26.i.i = phi i64 [ %indvars.iv.next27.i.i, %for.inc33.i.i ], [ 0, %for.body14.i.i ] %arrayidx27.i.i = getelementptr inbounds nuw i64, ptr %spare, i64 %indvars.iv26.i.i - %67 = load i64, ptr %arrayidx27.i.i, align 8 - %cmp28.not.i.i = icmp eq i64 %67, 0 + %63 = load i64, ptr %arrayidx27.i.i, align 8 + %cmp28.not.i.i = icmp eq i64 %63, 0 br i1 %cmp28.not.i.i, label %for.inc33.i.i, label %if.then.i.i if.then.i.i: ; preds = %for.body25.i.i - %arrayidx29.i.i = getelementptr inbounds [59 x i64], ptr %n.i.i, i64 0, i64 %67 - %68 = load i64, ptr %arrayidx29.i.i, align 8 - %inc30.i.i = add i64 %68, 1 + %arrayidx29.i.i = getelementptr inbounds [59 x i64], ptr %n.i.i, i64 0, i64 %63 + %64 = load i64, ptr %arrayidx29.i.i, align 8 + %inc30.i.i = add i64 %64, 1 store i64 %inc30.i.i, ptr %arrayidx29.i.i, align 8 - %shl.i45.i = shl i64 %68, 6 - %or.i46.i = or i64 %shl.i45.i, %67 + %shl.i45.i = shl i64 %64, 6 + %or.i46.i = or i64 %shl.i45.i, %63 store i64 %or.i46.i, ptr %arrayidx27.i.i, align 8 br label %for.inc33.i.i @@ -1809,7 +1803,7 @@ for.inc33.i.i: ; preds = %if.then.i.i, %for.b br i1 %exitcond29.not.i.i, label %hufCanonicalCodeTable.exit.i, label %for.body25.i.i, !llvm.loop !13 hufCanonicalCodeTable.exit.i: ; preds = %for.inc33.i.i - %sub48.i = sub i64 %sub47.neg.i, %65 + %sub48.i = sub i64 %sub47.neg.i, %61 call void @llvm.lifetime.end.p0(i64 472, ptr nonnull %n.i.i) br label %hufUnpackEncTable.exit @@ -1836,11 +1830,11 @@ if.end54: ; preds = %if.then51, %if.end4 cond.true.i: ; preds = %if.end54 %free_fn1.i = getelementptr inbounds nuw i8, ptr %pctxt.0, i64 96 - %69 = load ptr, ptr %free_fn1.i, align 8 + %65 = load ptr, ptr %free_fn1.i, align 8 br label %cond.end.i cond.end.i: ; preds = %cond.true.i, %if.end54 - %cond.i = phi ptr [ %69, %cond.true.i ], [ @internal_exr_free, %if.end54 ] + %cond.i = phi ptr [ %65, %cond.true.i ], [ @internal_exr_free, %if.end54 ] br label %for.body.i61 for.body.i61: ; preds = %for.inc.i64, %cond.end.i @@ -1848,12 +1842,12 @@ for.body.i61: ; preds = %for.inc.i64, %cond. %p.i.idx = shl nuw nsw i64 %indvars.iv.i62, 4 %p.i.offs = or disjoint i64 %p.i.idx, 8 %p.i = getelementptr inbounds nuw i8, ptr %add.ptr40, i64 %p.i.offs - %70 = load ptr, ptr %p.i, align 8 - %tobool2.not.i = icmp eq ptr %70, null + %66 = load ptr, ptr %p.i, align 8 + %tobool2.not.i = icmp eq ptr %66, null br i1 %tobool2.not.i, label %for.inc.i64, label %if.then.i63 if.then.i63: ; preds = %for.body.i61 - tail call void %cond.i(ptr noundef nonnull %70) #10 + tail call void %cond.i(ptr noundef nonnull %66) #10 store ptr null, ptr %p.i, align 8 br label %for.inc.i64 @@ -1948,7 +1942,7 @@ if.end14: ; preds = %while.end br i1 %cmp20, label %if.then22, label %if.else24 if.then22: ; preds = %if.end14 - %arrayidx23 = getelementptr inbounds [65537 x i32], ptr %_idToSymbol, i64 0, i64 %add + %arrayidx23 = getelementptr inbounds nuw [65537 x i32], ptr %_idToSymbol, i64 0, i64 %add %11 = load i32, ptr %arrayidx23, align 4 br label %if.end31 diff --git a/bench/openvdb/optimized/Diagnostics.cc.ll b/bench/openvdb/optimized/Diagnostics.cc.ll index 8d8115aaa3f..79ead5a91c5 100644 --- a/bench/openvdb/optimized/Diagnostics.cc.ll +++ b/bench/openvdb/optimized/Diagnostics.cc.ll @@ -15860,7 +15860,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %invoke.cont %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %invoke.cont ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -15895,7 +15895,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 @@ -17455,7 +17455,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %entry %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %entry ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -17490,7 +17490,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 @@ -18569,7 +18569,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %invoke.cont.i %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %invoke.cont.i ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -18604,7 +18604,7 @@ for.cond4.preheader.i.i.i14.i: ; preds = %for.body.i.i.i7.i for.body.i.i.i7.i: ; preds = %for.body.i.i.i7.i, %invoke.cont4.i %i.07.i.i.i8.i = phi i64 [ %inc.i.i.i12.i, %for.body.i.i.i7.i ], [ 0, %invoke.cont4.i ] - %node_list.idx.i.i.i9.i = shl nsw i64 %i.07.i.i.i8.i, 4 + %node_list.idx.i.i.i9.i = shl nuw nsw i64 %i.07.i.i.i8.i, 4 %node_list.offs.i.i.i10.i = or disjoint i64 %node_list.idx.i.i.i9.i, 8 %node_list.i.i.i11.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i, i64 %node_list.offs.i.i.i10.i store atomic i64 0, ptr %node_list.i.i.i11.i monotonic, align 8 @@ -94104,7 +94104,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %cond.true.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %cond.true.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -94139,7 +94139,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 @@ -100639,7 +100639,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %cond.true.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %cond.true.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -100674,7 +100674,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 @@ -104463,7 +104463,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %cond.true.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %cond.true.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -104498,7 +104498,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 @@ -106808,7 +106808,7 @@ if.then.i113: ; preds = %if.then65 common.resume.i: ; preds = %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i %common.resume.op.i = phi { ptr, i32 } [ %63, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i ], [ %66, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i ] - %arrayidx.i.i7.i13.i = getelementptr inbounds [64 x %"struct.std::atomic.318"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i.i7.i13.i = getelementptr inbounds nuw [64 x %"struct.std::atomic.318"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 store atomic i64 0, ptr %arrayidx.i.i7.i13.i monotonic, align 8 br label %common.resume @@ -106828,7 +106828,7 @@ for.body.i.i.i: ; preds = %if.then.i113, %for. br i1 %exitcond.not.i.i.i, label %_ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSQ_6bucketEmb.exit.i, label %for.body.i.i.i, !llvm.loop !1441 _ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSQ_6bucketEmb.exit.i: ; preds = %for.body.i.i.i - %arrayidx.i116 = getelementptr inbounds [64 x %"struct.std::atomic.318"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i116 = getelementptr inbounds nuw [64 x %"struct.std::atomic.318"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 %64 = ptrtoint ptr %call.i.i.i1.i.i to i64 store atomic i64 %64, ptr %arrayidx.i116 release, align 8 %shl.i = shl i64 2, %grow_segment.2 @@ -108606,7 +108606,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %cond.true %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %cond.true ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -108641,7 +108641,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 @@ -121055,7 +121055,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %cond.true.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %cond.true.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -121090,7 +121090,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 @@ -124867,7 +124867,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %cond.true.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %cond.true.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -124902,7 +124902,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 @@ -128686,7 +128686,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %cond.true.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %cond.true.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -128721,7 +128721,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 @@ -131028,7 +131028,7 @@ if.then.i113: ; preds = %if.then64 common.resume.i: ; preds = %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i %common.resume.op.i = phi { ptr, i32 } [ %63, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i ], [ %66, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i ] - %arrayidx.i.i7.i13.i = getelementptr inbounds [64 x %"struct.std::atomic.409"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i.i7.i13.i = getelementptr inbounds nuw [64 x %"struct.std::atomic.409"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 store atomic i64 0, ptr %arrayidx.i.i7.i13.i monotonic, align 8 br label %common.resume @@ -131048,7 +131048,7 @@ for.body.i.i.i: ; preds = %if.then.i113, %for. br i1 %exitcond.not.i.i.i, label %_ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSQ_6bucketEmb.exit.i, label %for.body.i.i.i, !llvm.loop !1757 _ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseIKNS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSQ_6bucketEmb.exit.i: ; preds = %for.body.i.i.i - %arrayidx.i116 = getelementptr inbounds [64 x %"struct.std::atomic.409"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i116 = getelementptr inbounds nuw [64 x %"struct.std::atomic.409"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 %64 = ptrtoint ptr %call.i.i.i1.i.i to i64 store atomic i64 %64, ptr %arrayidx.i116 release, align 8 %shl.i = shl i64 2, %grow_segment.2 @@ -132824,7 +132824,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %cond.true %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %cond.true ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -132859,7 +132859,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 diff --git a/bench/openvdb/optimized/LevelSetSphere.cc.ll b/bench/openvdb/optimized/LevelSetSphere.cc.ll index 22b7c9290c9..915974cc1d8 100644 --- a/bench/openvdb/optimized/LevelSetSphere.cc.ll +++ b/bench/openvdb/optimized/LevelSetSphere.cc.ll @@ -6972,7 +6972,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %invoke.cont %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %invoke.cont ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -7007,7 +7007,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 @@ -8069,7 +8069,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %entry %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %entry ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -8104,7 +8104,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 @@ -9134,7 +9134,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %invoke.cont.i %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %invoke.cont.i ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -9169,7 +9169,7 @@ for.cond4.preheader.i.i.i14.i: ; preds = %for.body.i.i.i7.i for.body.i.i.i7.i: ; preds = %for.body.i.i.i7.i, %invoke.cont4.i %i.07.i.i.i8.i = phi i64 [ %inc.i.i.i12.i, %for.body.i.i.i7.i ], [ 0, %invoke.cont4.i ] - %node_list.idx.i.i.i9.i = shl nsw i64 %i.07.i.i.i8.i, 4 + %node_list.idx.i.i.i9.i = shl nuw nsw i64 %i.07.i.i.i8.i, 4 %node_list.offs.i.i.i10.i = or disjoint i64 %node_list.idx.i.i.i9.i, 8 %node_list.i.i.i11.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i, i64 %node_list.offs.i.i.i10.i store atomic i64 0, ptr %node_list.i.i.i11.i monotonic, align 8 @@ -81702,7 +81702,7 @@ if.then.i113: ; preds = %if.then59 common.resume.i: ; preds = %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i %common.resume.op.i = phi { ptr, i32 } [ %63, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i ], [ %66, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i ] - %arrayidx.i.i7.i13.i = getelementptr inbounds [64 x %"struct.std::atomic.44"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i.i7.i13.i = getelementptr inbounds nuw [64 x %"struct.std::atomic.44"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 store atomic i64 0, ptr %arrayidx.i.i7.i13.i monotonic, align 8 br label %common.resume @@ -81722,7 +81722,7 @@ for.body.i.i.i: ; preds = %if.then.i113, %for. br i1 %exitcond.not.i.i.i, label %_ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSP_6bucketEmb.exit.i, label %for.body.i.i.i, !llvm.loop !1039 _ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIfLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSP_6bucketEmb.exit.i: ; preds = %for.body.i.i.i - %arrayidx.i116 = getelementptr inbounds [64 x %"struct.std::atomic.44"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i116 = getelementptr inbounds nuw [64 x %"struct.std::atomic.44"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 %64 = ptrtoint ptr %call.i.i.i1.i.i to i64 store atomic i64 %64, ptr %arrayidx.i116 release, align 8 %shl.i = shl i64 2, %grow_segment.2 @@ -81844,7 +81844,7 @@ for.cond4.preheader.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i. for.body.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i, %invoke.cont.i.i.i %i.07.i.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ 0, %invoke.cont.i.i.i ] - %node_list.idx.i.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i.i, 8 %node_list.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i.i monotonic, align 8 @@ -81879,7 +81879,7 @@ for.cond4.preheader.i.i.i14.i.i.i: ; preds = %for.body.i.i.i7.i.i for.body.i.i.i7.i.i.i: ; preds = %for.body.i.i.i7.i.i.i, %invoke.cont4.i.i.i %i.07.i.i.i8.i.i.i = phi i64 [ %inc.i.i.i12.i.i.i, %for.body.i.i.i7.i.i.i ], [ 0, %invoke.cont4.i.i.i ] - %node_list.idx.i.i.i9.i.i.i = shl nsw i64 %i.07.i.i.i8.i.i.i, 4 + %node_list.idx.i.i.i9.i.i.i = shl nuw nsw i64 %i.07.i.i.i8.i.i.i, 4 %node_list.offs.i.i.i10.i.i.i = or disjoint i64 %node_list.idx.i.i.i9.i.i.i, 8 %node_list.i.i.i11.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i.i.i, i64 %node_list.offs.i.i.i10.i.i.i store atomic i64 0, ptr %node_list.i.i.i11.i.i.i monotonic, align 8 @@ -82062,7 +82062,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %invoke.cont.i.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %invoke.cont.i.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -82097,7 +82097,7 @@ for.cond4.preheader.i.i.i14.i.i: ; preds = %for.body.i.i.i7.i.i for.body.i.i.i7.i.i: ; preds = %for.body.i.i.i7.i.i, %invoke.cont4.i.i %i.07.i.i.i8.i.i = phi i64 [ %inc.i.i.i12.i.i, %for.body.i.i.i7.i.i ], [ 0, %invoke.cont4.i.i ] - %node_list.idx.i.i.i9.i.i = shl nsw i64 %i.07.i.i.i8.i.i, 4 + %node_list.idx.i.i.i9.i.i = shl nuw nsw i64 %i.07.i.i.i8.i.i, 4 %node_list.offs.i.i.i10.i.i = or disjoint i64 %node_list.idx.i.i.i9.i.i, 8 %node_list.i.i.i11.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i.i, i64 %node_list.offs.i.i.i10.i.i store atomic i64 0, ptr %node_list.i.i.i11.i.i monotonic, align 8 @@ -82179,7 +82179,7 @@ for.cond4.preheader.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i. for.body.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i, %invoke.cont.i.i.i %i.07.i.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ 0, %invoke.cont.i.i.i ] - %node_list.idx.i.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i.i, 8 %node_list.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i.i monotonic, align 8 @@ -82214,7 +82214,7 @@ for.cond4.preheader.i.i.i14.i.i.i: ; preds = %for.body.i.i.i7.i.i for.body.i.i.i7.i.i.i: ; preds = %for.body.i.i.i7.i.i.i, %invoke.cont4.i.i.i %i.07.i.i.i8.i.i.i = phi i64 [ %inc.i.i.i12.i.i.i, %for.body.i.i.i7.i.i.i ], [ 0, %invoke.cont4.i.i.i ] - %node_list.idx.i.i.i9.i.i.i = shl nsw i64 %i.07.i.i.i8.i.i.i, 4 + %node_list.idx.i.i.i9.i.i.i = shl nuw nsw i64 %i.07.i.i.i8.i.i.i, 4 %node_list.offs.i.i.i10.i.i.i = or disjoint i64 %node_list.idx.i.i.i9.i.i.i, 8 %node_list.i.i.i11.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i.i.i, i64 %node_list.offs.i.i.i10.i.i.i store atomic i64 0, ptr %node_list.i.i.i11.i.i.i monotonic, align 8 @@ -83965,7 +83965,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %if.then6 %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %if.then6 ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -84000,7 +84000,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 @@ -87990,7 +87990,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %invoke.cont %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %invoke.cont ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -88025,7 +88025,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 @@ -89087,7 +89087,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %entry %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %entry ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -89122,7 +89122,7 @@ for.cond4.preheader.i.i.i13.i: ; preds = %for.body.i.i.i6.i for.body.i.i.i6.i: ; preds = %for.body.i.i.i6.i, %invoke.cont3.i %i.07.i.i.i7.i = phi i64 [ %inc.i.i.i11.i, %for.body.i.i.i6.i ], [ 0, %invoke.cont3.i ] - %node_list.idx.i.i.i8.i = shl nsw i64 %i.07.i.i.i7.i, 4 + %node_list.idx.i.i.i8.i = shl nuw nsw i64 %i.07.i.i.i7.i, 4 %node_list.offs.i.i.i9.i = or disjoint i64 %node_list.idx.i.i.i8.i, 8 %node_list.i.i.i10.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i, i64 %node_list.offs.i.i.i9.i store atomic i64 0, ptr %node_list.i.i.i10.i monotonic, align 8 @@ -89830,7 +89830,7 @@ for.cond4.preheader.i.i.i.i: ; preds = %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, %invoke.cont.i %i.07.i.i.i.i = phi i64 [ %inc.i.i.i.i, %for.body.i.i.i.i ], [ 0, %invoke.cont.i ] - %node_list.idx.i.i.i.i = shl nsw i64 %i.07.i.i.i.i, 4 + %node_list.idx.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i, 4 %node_list.offs.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i, 8 %node_list.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i, i64 %node_list.offs.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i monotonic, align 8 @@ -89865,7 +89865,7 @@ for.cond4.preheader.i.i.i14.i: ; preds = %for.body.i.i.i7.i for.body.i.i.i7.i: ; preds = %for.body.i.i.i7.i, %invoke.cont4.i %i.07.i.i.i8.i = phi i64 [ %inc.i.i.i12.i, %for.body.i.i.i7.i ], [ 0, %invoke.cont4.i ] - %node_list.idx.i.i.i9.i = shl nsw i64 %i.07.i.i.i8.i, 4 + %node_list.idx.i.i.i9.i = shl nuw nsw i64 %i.07.i.i.i8.i, 4 %node_list.offs.i.i.i10.i = or disjoint i64 %node_list.idx.i.i.i9.i, 8 %node_list.i.i.i11.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i, i64 %node_list.offs.i.i.i10.i store atomic i64 0, ptr %node_list.i.i.i11.i monotonic, align 8 @@ -160240,7 +160240,7 @@ if.then.i113: ; preds = %if.then58 common.resume.i: ; preds = %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i %common.resume.op.i = phi { ptr, i32 } [ %63, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE0_ED2Ev.exit8.i.i ], [ %66, %_ZN3tbb6detail2d010raii_guardIZNS0_2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINSA_4TreeINSA_8RootNodeINSA_12InternalNodeINSE_INSA_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS5_13spin_rw_mutexEE14enable_segmentEmbEUlvE2_ED2Ev.exit8.i.i ] - %arrayidx.i.i7.i13.i = getelementptr inbounds [64 x %"struct.std::atomic.724"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i.i7.i13.i = getelementptr inbounds nuw [64 x %"struct.std::atomic.724"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 store atomic i64 0, ptr %arrayidx.i.i7.i13.i monotonic, align 8 br label %common.resume @@ -160260,7 +160260,7 @@ for.body.i.i.i: ; preds = %if.then.i113, %for. br i1 %exitcond.not.i.i.i, label %_ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSP_6bucketEmb.exit.i, label %for.body.i.i.i, !llvm.loop !2091 _ZN3tbb6detail2d213hash_map_baseINS0_2d113tbb_allocatorISt4pairIKPN7openvdb5v11_04tree17ValueAccessorBaseINS8_4TreeINS8_8RootNodeINS8_12InternalNodeINSC_INS8_8LeafNodeIdLj3EEELj4EEELj5EEEEEEELb1EEEbEEENS3_13spin_rw_mutexEE12init_bucketsEPNSP_6bucketEmb.exit.i: ; preds = %for.body.i.i.i - %arrayidx.i116 = getelementptr inbounds [64 x %"struct.std::atomic.724"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 + %arrayidx.i116 = getelementptr inbounds nuw [64 x %"struct.std::atomic.724"], ptr %my_table.i.i.i, i64 0, i64 %grow_segment.2 %64 = ptrtoint ptr %call.i.i.i1.i.i to i64 store atomic i64 %64, ptr %arrayidx.i116 release, align 8 %shl.i = shl i64 2, %grow_segment.2 @@ -160380,7 +160380,7 @@ for.cond4.preheader.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i. for.body.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i, %invoke.cont.i.i.i %i.07.i.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ 0, %invoke.cont.i.i.i ] - %node_list.idx.i.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i.i, 8 %node_list.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i.i monotonic, align 8 @@ -160415,7 +160415,7 @@ for.cond4.preheader.i.i.i14.i.i.i: ; preds = %for.body.i.i.i7.i.i for.body.i.i.i7.i.i.i: ; preds = %for.body.i.i.i7.i.i.i, %invoke.cont4.i.i.i %i.07.i.i.i8.i.i.i = phi i64 [ %inc.i.i.i12.i.i.i, %for.body.i.i.i7.i.i.i ], [ 0, %invoke.cont4.i.i.i ] - %node_list.idx.i.i.i9.i.i.i = shl nsw i64 %i.07.i.i.i8.i.i.i, 4 + %node_list.idx.i.i.i9.i.i.i = shl nuw nsw i64 %i.07.i.i.i8.i.i.i, 4 %node_list.offs.i.i.i10.i.i.i = or disjoint i64 %node_list.idx.i.i.i9.i.i.i, 8 %node_list.i.i.i11.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i.i.i, i64 %node_list.offs.i.i.i10.i.i.i store atomic i64 0, ptr %node_list.i.i.i11.i.i.i monotonic, align 8 @@ -160584,7 +160584,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %invoke.cont.i.i %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %invoke.cont.i.i ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -160619,7 +160619,7 @@ for.cond4.preheader.i.i.i14.i.i: ; preds = %for.body.i.i.i7.i.i for.body.i.i.i7.i.i: ; preds = %for.body.i.i.i7.i.i, %invoke.cont4.i.i %i.07.i.i.i8.i.i = phi i64 [ %inc.i.i.i12.i.i, %for.body.i.i.i7.i.i ], [ 0, %invoke.cont4.i.i ] - %node_list.idx.i.i.i9.i.i = shl nsw i64 %i.07.i.i.i8.i.i, 4 + %node_list.idx.i.i.i9.i.i = shl nuw nsw i64 %i.07.i.i.i8.i.i, 4 %node_list.offs.i.i.i10.i.i = or disjoint i64 %node_list.idx.i.i.i9.i.i, 8 %node_list.i.i.i11.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i.i, i64 %node_list.offs.i.i.i10.i.i store atomic i64 0, ptr %node_list.i.i.i11.i.i monotonic, align 8 @@ -160688,7 +160688,7 @@ for.cond4.preheader.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i. for.body.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i.i, %invoke.cont.i.i.i %i.07.i.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i.i, %for.body.i.i.i.i.i.i ], [ 0, %invoke.cont.i.i.i ] - %node_list.idx.i.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i.i, 8 %node_list.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i.i monotonic, align 8 @@ -160723,7 +160723,7 @@ for.cond4.preheader.i.i.i14.i.i.i: ; preds = %for.body.i.i.i7.i.i for.body.i.i.i7.i.i.i: ; preds = %for.body.i.i.i7.i.i.i, %invoke.cont4.i.i.i %i.07.i.i.i8.i.i.i = phi i64 [ %inc.i.i.i12.i.i.i, %for.body.i.i.i7.i.i.i ], [ 0, %invoke.cont4.i.i.i ] - %node_list.idx.i.i.i9.i.i.i = shl nsw i64 %i.07.i.i.i8.i.i.i, 4 + %node_list.idx.i.i.i9.i.i.i = shl nuw nsw i64 %i.07.i.i.i8.i.i.i, 4 %node_list.offs.i.i.i10.i.i.i = or disjoint i64 %node_list.idx.i.i.i9.i.i.i, 8 %node_list.i.i.i11.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i6.i.i.i, i64 %node_list.offs.i.i.i10.i.i.i store atomic i64 0, ptr %node_list.i.i.i11.i.i.i monotonic, align 8 @@ -162468,7 +162468,7 @@ for.cond4.preheader.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i, %if.then6 %i.07.i.i.i.i.i = phi i64 [ %inc.i.i.i.i.i, %for.body.i.i.i.i.i ], [ 0, %if.then6 ] - %node_list.idx.i.i.i.i.i = shl nsw i64 %i.07.i.i.i.i.i, 4 + %node_list.idx.i.i.i.i.i = shl nuw nsw i64 %i.07.i.i.i.i.i, 4 %node_list.offs.i.i.i.i.i = or disjoint i64 %node_list.idx.i.i.i.i.i, 8 %node_list.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i.i.i, i64 %node_list.offs.i.i.i.i.i store atomic i64 0, ptr %node_list.i.i.i.i.i monotonic, align 8 @@ -162503,7 +162503,7 @@ for.cond4.preheader.i.i.i13.i.i: ; preds = %for.body.i.i.i6.i.i for.body.i.i.i6.i.i: ; preds = %for.body.i.i.i6.i.i, %invoke.cont3.i.i %i.07.i.i.i7.i.i = phi i64 [ %inc.i.i.i11.i.i, %for.body.i.i.i6.i.i ], [ 0, %invoke.cont3.i.i ] - %node_list.idx.i.i.i8.i.i = shl nsw i64 %i.07.i.i.i7.i.i, 4 + %node_list.idx.i.i.i8.i.i = shl nuw nsw i64 %i.07.i.i.i7.i.i, 4 %node_list.offs.i.i.i9.i.i = or disjoint i64 %node_list.idx.i.i.i8.i.i, 8 %node_list.i.i.i10.i.i = getelementptr inbounds nuw i8, ptr %my_embedded_segment.ptr.i.i.i5.i.i, i64 %node_list.offs.i.i.i9.i.i store atomic i64 0, ptr %node_list.i.i.i10.i.i monotonic, align 8 diff --git a/bench/openvdb/optimized/Prune.cc.ll b/bench/openvdb/optimized/Prune.cc.ll index a56361f61ba..9428dad75ac 100644 --- a/bench/openvdb/optimized/Prune.cc.ll +++ b/bench/openvdb/optimized/Prune.cc.ll @@ -20778,7 +20778,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i32, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i32, ptr %__first, i64 %dec.us %7 = load i32, ptr %add.ptr10.us, align 4 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -20830,7 +20830,7 @@ _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i32, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i32, ptr %__first, i64 %dec %12 = load i32, ptr %add.ptr10, align 4 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -22467,7 +22467,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_8LeafNodeIiLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58.us %__parent.063.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_8LeafNodeIiLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.063.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.541", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.541", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.063.us, %div.i5961 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i46.us @@ -22530,7 +22530,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_8LeafNodeIiLj3EEEvEElS6 if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_8LeafNodeIiLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58 %__parent.063 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_8LeafNodeIiLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.063, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.541", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.541", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.063, %div.i5961 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i46 @@ -23552,7 +23552,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_12InternalNodeINS2_8LeafNodeIiLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58.us %__parent.063.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_12InternalNodeINS2_8LeafNodeIiLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.063.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.530", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.530", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.063.us, %div.i5961 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i46.us @@ -23615,7 +23615,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_12InternalNodeINS2_8Lea if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_12InternalNodeINS2_8LeafNodeIiLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58 %__parent.063 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIiNS2_12InternalNodeINS2_8LeafNodeIiLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit58 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.063, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.530", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.530", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.063, %div.i5961 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i46 @@ -29936,7 +29936,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i64, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i64, ptr %__first, i64 %dec.us %7 = load i64, ptr %add.ptr10.us, align 8 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -29988,7 +29988,7 @@ _ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i64, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i64, ptr %__first, i64 %dec %12 = load i64, ptr %add.ptr10, align 8 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -31590,7 +31590,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_8LeafNodeIlLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_8LeafNodeIlLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.671", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.671", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.061.us, %div.i5759 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i44.us @@ -31648,7 +31648,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_8LeafNodeIlLj3EEEvEElS6 if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_8LeafNodeIlLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_8LeafNodeIlLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.671", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.671", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.061, %div.i5759 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 @@ -32648,7 +32648,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_12InternalNodeINS2_8LeafNodeIlLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_12InternalNodeINS2_8LeafNodeIlLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.660", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.660", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.061.us, %div.i5759 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i44.us @@ -32706,7 +32706,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_12InternalNodeINS2_8Lea if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_12InternalNodeINS2_8LeafNodeIlLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIlNS2_12InternalNodeINS2_8LeafNodeIlLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.660", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.660", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.061, %div.i5759 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 @@ -39182,7 +39182,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds float, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw float, ptr %__first, i64 %dec.us %7 = load float, ptr %add.ptr10.us, align 4 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -39234,7 +39234,7 @@ _ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds float, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw float, ptr %__first, i64 %dec %12 = load float, ptr %add.ptr10, align 4 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -40873,7 +40873,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.751", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.751", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.061.us, %div.i5759 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i44.us @@ -40934,7 +40934,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEElS6 if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_8LeafNodeIfLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.751", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.751", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.061, %div.i5759 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 @@ -41976,7 +41976,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8LeafNodeIfLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8LeafNodeIfLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.740", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.740", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.061.us, %div.i5759 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i44.us @@ -42037,7 +42037,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8Lea if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8LeafNodeIfLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIfNS2_12InternalNodeINS2_8LeafNodeIfLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.740", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.740", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.061, %div.i5759 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 @@ -48522,7 +48522,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds double, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw double, ptr %__first, i64 %dec.us %7 = load double, ptr %add.ptr10.us, align 8 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -48574,7 +48574,7 @@ _ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds double, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw double, ptr %__first, i64 %dec %12 = load double, ptr %add.ptr10, align 8 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -50188,7 +50188,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.061.us, %div.i5759 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i44.us @@ -50247,7 +50247,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6 if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_8LeafNodeIdLj3EEEvEElS6_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSF_IS5_Lj4EEELj5EEEEEEELj0EE6medianISG_EENT_9ValueTypeERSM_EUlRKS6_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.837", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.061, %div.i5759 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 @@ -51262,7 +51262,7 @@ if.end9.split.preheader: ; preds = %if.end9.split.lr.ph if.end9.split.us: ; preds = %if.end9.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us %__parent.061.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56.us ], [ %div13, %if.end9.split.lr.ph ] %dec.us = add nsw i64 %__parent.061.us, -1 - %add.ptr11.us = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %dec.us + %add.ptr11.us = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %dec.us %__value.sroa.0.0.copyload12.us = load ptr, ptr %add.ptr11.us, align 8 %cmp23.i16.not.us = icmp sgt i64 %__parent.061.us, %div.i5759 br i1 %cmp23.i16.not.us, label %while.end.i17.us.thread, label %while.body.i44.us @@ -51321,7 +51321,7 @@ _ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8Lea if.end9.split: ; preds = %if.end9.split.preheader, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 %__parent.061 = phi i64 [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionIdNS2_12InternalNodeINS2_8LeafNodeIdLj3EEELj4EEEvEElS8_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS4_IS7_Lj5EEEEEEELj0EE6medianISH_EENT_9ValueTypeERSM_EUlRKS8_SQ_E_EEEvSM_T0_ST_T1_T2_.exit56 ], [ %div13, %if.end9.split.preheader ] %dec = add nsw i64 %__parent.061, -1 - %add.ptr11 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %dec + %add.ptr11 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.826", ptr %__first, i64 %dec %__value.sroa.0.0.copyload12 = load ptr, ptr %add.ptr11, align 8 %cmp23.i16.not = icmp sgt i64 %__parent.061, %div.i5759 br i1 %cmp23.i16.not, label %while.end.i17, label %while.body.i44 @@ -57994,7 +57994,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04math4Vec3IfEElS4_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit89 %__parent.0105 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04math4Vec3IfEElS4_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit89 ] %dec = add nsw i64 %__parent.0105, -1 - %add.ptr13 = getelementptr inbounds %"class.openvdb::v11_0::math::Vec3.236", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"class.openvdb::v11_0::math::Vec3.236", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load <2 x float>, ptr %add.ptr13, align 4 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load float, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 4 @@ -60105,7 +60105,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IfEENS2_8LeafNodeIS6_Lj3EEEvEElS9_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSI_IS8_Lj4EEELj5EEEEEEELj0EE6medianISJ_EENT_9ValueTypeERSP_EUlRKS9_ST_E_EEEvSP_T0_SW_T1_T2_.exit88 %__parent.0106 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IfEENS2_8LeafNodeIS6_Lj3EEEvEElS9_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSI_IS8_Lj4EEELj5EEEEEEELj0EE6medianISJ_EENT_9ValueTypeERSP_EUlRKS9_ST_E_EEEvSP_T0_SW_T1_T2_.exit88 ] %dec = add nsw i64 %__parent.0106, -1 - %add.ptr13 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.917", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.917", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load ptr, ptr %add.ptr13, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load double, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 8 @@ -61725,7 +61725,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IfEENS2_12InternalNodeINS2_8LeafNodeIS6_Lj3EEELj4EEEvEElSB_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS7_ISA_Lj5EEEEEEELj0EE6medianISK_EENT_9ValueTypeERSP_EUlRKSB_ST_E_EEEvSP_T0_SW_T1_T2_.exit88 %__parent.0106 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IfEENS2_12InternalNodeINS2_8LeafNodeIS6_Lj3EEELj4EEEvEElSB_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS7_ISA_Lj5EEEEEEELj0EE6medianISK_EENT_9ValueTypeERSP_EUlRKSB_ST_E_EEEvSP_T0_SW_T1_T2_.exit88 ] %dec = add nsw i64 %__parent.0106, -1 - %add.ptr13 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.906", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.906", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load ptr, ptr %add.ptr13, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load double, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 8 @@ -68666,7 +68666,7 @@ if.end: ; preds = %entry while.body: ; preds = %_ZSt13__adjust_heapIPN7openvdb5v11_04math4Vec3IdEElS4_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit, %if.end %__parent.0 = phi i64 [ %div9, %if.end ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04math4Vec3IdEElS4_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit ] - %add.ptr = getelementptr inbounds %"class.openvdb::v11_0::math::Vec3", ptr %__first, i64 %__parent.0 + %add.ptr = getelementptr inbounds nuw %"class.openvdb::v11_0::math::Vec3", ptr %__first, i64 %__parent.0 %__value.sroa.0.sroa.0.0.copyload = load double, ptr %add.ptr, align 8 %__value.sroa.0.sroa.2.0.add.ptr.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr, i64 8 %__value.sroa.0.sroa.2.0.copyload = load double, ptr %__value.sroa.0.sroa.2.0.add.ptr.sroa_idx, align 8 @@ -70643,7 +70643,7 @@ if.end: ; preds = %entry while.body: ; preds = %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IdEENS2_8LeafNodeIS6_Lj3EEEvEElS9_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSI_IS8_Lj4EEELj5EEEEEEELj0EE6medianISJ_EENT_9ValueTypeERSP_EUlRKS9_ST_E_EEEvSP_T0_SW_T1_T2_.exit, %if.end %__parent.0 = phi i64 [ %div9, %if.end ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IdEENS2_8LeafNodeIS6_Lj3EEEvEElS9_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSI_IS8_Lj4EEELj5EEEEEEELj0EE6medianISJ_EENT_9ValueTypeERSP_EUlRKS9_ST_E_EEEvSP_T0_SW_T1_T2_.exit ] - %add.ptr = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.1006", ptr %__first, i64 %__parent.0 + %add.ptr = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.1006", ptr %__first, i64 %__parent.0 %__value.sroa.0.sroa.0.0.copyload = load double, ptr %add.ptr, align 8 %__value.sroa.0.sroa.2.0.add.ptr.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr, i64 8 %__value.sroa.0.sroa.2.0.copyload = load double, ptr %__value.sroa.0.sroa.2.0.add.ptr.sroa_idx, align 8 @@ -72130,7 +72130,7 @@ if.end: ; preds = %entry while.body: ; preds = %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IdEENS2_12InternalNodeINS2_8LeafNodeIS6_Lj3EEELj4EEEvEElSB_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS7_ISA_Lj5EEEEEEELj0EE6medianISK_EENT_9ValueTypeERSP_EUlRKSB_ST_E_EEEvSP_T0_SW_T1_T2_.exit, %if.end %__parent.0 = phi i64 [ %div9, %if.end ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IdEENS2_12InternalNodeINS2_8LeafNodeIS6_Lj3EEELj4EEEvEElSB_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS7_ISA_Lj5EEEEEEELj0EE6medianISK_EENT_9ValueTypeERSP_EUlRKSB_ST_E_EEEvSP_T0_SW_T1_T2_.exit ] - %add.ptr = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.995", ptr %__first, i64 %__parent.0 + %add.ptr = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.995", ptr %__first, i64 %__parent.0 %__value.sroa.0.sroa.0.0.copyload = load double, ptr %add.ptr, align 8 %__value.sroa.0.sroa.2.0.add.ptr.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr, i64 8 %__value.sroa.0.sroa.2.0.copyload = load double, ptr %__value.sroa.0.sroa.2.0.add.ptr.sroa_idx, align 8 @@ -78926,7 +78926,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04math4Vec3IiEElS4_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit88 %__parent.0104 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04math4Vec3IiEElS4_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit88 ] %dec = add nsw i64 %__parent.0104, -1 - %add.ptr13 = getelementptr inbounds %"class.openvdb::v11_0::math::Vec3.341", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"class.openvdb::v11_0::math::Vec3.341", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load i64, ptr %add.ptr13, align 4 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load i32, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 4 @@ -81032,7 +81032,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IiEENS2_8LeafNodeIS6_Lj3EEEvEElS9_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSI_IS8_Lj4EEELj5EEEEEEELj0EE6medianISJ_EENT_9ValueTypeERSP_EUlRKS9_ST_E_EEEvSP_T0_SW_T1_T2_.exit90 %__parent.0108 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IiEENS2_8LeafNodeIS6_Lj3EEEvEElS9_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS2_12InternalNodeINSI_IS8_Lj4EEELj5EEEEEEELj0EE6medianISJ_EENT_9ValueTypeERSP_EUlRKS9_ST_E_EEEvSP_T0_SW_T1_T2_.exit90 ] %dec = add nsw i64 %__parent.0108, -1 - %add.ptr13 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.1087", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.1087", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load ptr, ptr %add.ptr13, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load i64, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 8 @@ -82647,7 +82647,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IiEENS2_12InternalNodeINS2_8LeafNodeIS6_Lj3EEELj4EEEvEElSB_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS7_ISA_Lj5EEEEEEELj0EE6medianISK_EENT_9ValueTypeERSP_EUlRKSB_ST_E_EEEvSP_T0_SW_T1_T2_.exit90 %__parent.0108 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN7openvdb5v11_04tree9NodeUnionINS1_4math4Vec3IiEENS2_12InternalNodeINS2_8LeafNodeIS6_Lj3EEELj4EEEvEElSB_N9__gnu_cxx5__ops15_Iter_comp_iterIZNKS1_5tools16TolerancePruneOpINS2_4TreeINS2_8RootNodeINS7_ISA_Lj5EEEEEEELj0EE6medianISK_EENT_9ValueTypeERSP_EUlRKSB_ST_E_EEEvSP_T0_SW_T1_T2_.exit90 ] %dec = add nsw i64 %__parent.0108, -1 - %add.ptr13 = getelementptr inbounds %"class.openvdb::v11_0::tree::NodeUnion.1075", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"class.openvdb::v11_0::tree::NodeUnion.1075", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load ptr, ptr %add.ptr13, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load i64, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 8 diff --git a/bench/pbrt-v4/optimized/aggregates.cpp.ll b/bench/pbrt-v4/optimized/aggregates.cpp.ll index 39c1d9c26ab..92c9df9ca0e 100644 --- a/bench/pbrt-v4/optimized/aggregates.cpp.ll +++ b/bench/pbrt-v4/optimized/aggregates.cpp.ll @@ -2691,7 +2691,7 @@ if.end.i.i.i.i: ; preds = %if.then.i.i while.body.i.i.i.i: ; preds = %while.body.i.i.i.i, %if.end.i.i.i.i %__parent.0.i.i.i.i = phi i64 [ %div9.i.i.i.i, %if.end.i.i.i.i ], [ %dec.i.i.i.i, %while.body.i.i.i.i ] - %add.ptr.i.i.i.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first.addr.0.call.i.i, i64 %__parent.0.i.i.i.i + %add.ptr.i.i.i.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first.addr.0.call.i.i, i64 %__parent.0.i.i.i.i tail call fastcc void @"_ZSt13__adjust_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops15_Iter_comp_iterIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_2EEEvT_T0_SS_T1_T2_"(ptr noundef %__first.addr.0.call.i.i, i64 noundef %__parent.0.i.i.i.i, i64 noundef %sub.ptr.div.i.i.i.i, ptr noundef nonnull byval(%"struct.pbrt::BVHPrimitive") align 8 %add.ptr.i.i.i.i, i32 %retval.0.i) %cmp7.i.i.i.i = icmp eq i64 %__parent.0.i.i.i.i, 0 %dec.i.i.i.i = add nsw i64 %__parent.0.i.i.i.i, -1 @@ -4636,7 +4636,7 @@ if.end.i.i.i: ; preds = %if.then.i while.body.i.i.i: ; preds = %while.body.i.i.i, %if.end.i.i.i %__parent.0.i.i.i = phi i64 [ %div9.i.i.i, %if.end.i.i.i ], [ %dec.i.i.i, %while.body.i.i.i ] - %add.ptr.i.i.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first.addr.0.call.i, i64 %__parent.0.i.i.i + %add.ptr.i.i.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first.addr.0.call.i, i64 %__parent.0.i.i.i tail call fastcc void @"_ZSt13__adjust_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops15_Iter_comp_iterIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_3EEEvT_T0_SS_T1_T2_"(ptr noundef %__first.addr.0.call.i, i64 noundef %__parent.0.i.i.i, i64 noundef %sub.ptr.div.i.i.i, ptr noundef nonnull byval(%"struct.pbrt::BVHPrimitive") align 8 %add.ptr.i.i.i, i32 %__comp.coerce) %cmp7.i.i.i = icmp eq i64 %__parent.0.i.i.i, 0 %dec.i.i.i = add nsw i64 %__parent.0.i.i.i, -1 @@ -15639,9 +15639,9 @@ while.body: ; preds = %entry, %"_ZN9__gnu_ %__secondChild.036 = phi i64 [ %spec.select, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZN4pbrt12BVHAggregate14buildRecursiveERNS2_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS5_4spanINS2_12BVHPrimitiveEEEPSt6atomicIiESH_RSt6vectorINS2_9PrimitiveESaISJ_EEE3$_2EclIPSD_SQ_EEbT_T0_.exit" ], [ %__holeIndex, %entry ] %add = shl i64 %__secondChild.036, 1 %mul = add i64 %add, 2 - %add.ptr = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %mul + %add.ptr = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %mul %sub2 = or disjoint i64 %add, 1 - %add.ptr3 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub2 + %add.ptr3 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub2 %bounds.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 8 %agg.tmp.sroa.0.0.copyload.i.i.i = load <2 x float>, ptr %bounds.i.i.i, align 8 %pMax.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 20 @@ -15700,8 +15700,8 @@ _ZN4pbrt6Tuple3INS_6Point3EfEixEi.exit.i.i: ; preds = %while.body %add.i.i1910.i.i = fadd float %mul.i.i2.i159.i.i, %mul.i.i.i65.sink.i.i %cmp.i.i = fcmp olt float %retval.0.i.sroa.speculated11.i.i, %add.i.i1910.i.i %spec.select = select i1 %cmp.i.i, i64 %sub2, i64 %mul - %add.ptr4 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %spec.select - %add.ptr5 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.036 + %add.ptr4 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %spec.select + %add.ptr5 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.036 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr5, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr4, i64 32, i1 false) %cmp = icmp slt i64 %spec.select, %div br i1 %cmp, label %while.body, label %while.end, !llvm.loop !134 @@ -15721,8 +15721,8 @@ land.lhs.true: ; preds = %while.end if.then10: ; preds = %land.lhs.true %add11 = shl nsw i64 %__secondChild.0.lcssa, 1 %sub13 = or disjoint i64 %add11, 1 - %add.ptr14 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub13 - %add.ptr15 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.0.lcssa + %add.ptr14 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub13 + %add.ptr15 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.0.lcssa tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr15, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr14, i64 32, i1 false) br label %if.end17 @@ -15759,7 +15759,7 @@ land.rhs.lr.ph.split.us.i: ; preds = %land.rhs.lr.ph.i land.rhs.us.i: ; preds = %while.body.us.i, %land.rhs.lr.ph.split.us.i %__parent.05.us.i = phi i64 [ %__parent.02.i, %land.rhs.lr.ph.split.us.i ], [ %__parent.0.us.i, %while.body.us.i ] %__holeIndex.addr.04.us.i = phi i64 [ %__holeIndex.addr.1, %land.rhs.lr.ph.split.us.i ], [ %__parent.05.us.i, %while.body.us.i ] - %add.ptr.us.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us.i + %add.ptr.us.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us.i %bounds.i.i.i.us.i = getelementptr inbounds nuw i8, ptr %add.ptr.us.i, i64 8 %agg.tmp.sroa.0.0.copyload.i.i.i.us.i = load <2 x float>, ptr %bounds.i.i.i.us.i, align 8 %pMax.i.i.i.us.i = getelementptr inbounds nuw i8, ptr %add.ptr.us.i, i64 20 @@ -15773,7 +15773,7 @@ land.rhs.us.i: ; preds = %while.body.us.i, %l br i1 %cmp.i.i.us.i, label %while.body.us.i, label %"_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_2EEEvT_T0_SS_T1_RT2_.exit" while.body.us.i: ; preds = %land.rhs.us.i - %add.ptr2.us.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us.i + %add.ptr2.us.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr2.us.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.us.i, i64 32, i1 false) %__parent.0.in.us.i = add nsw i64 %__parent.05.us.i, -1 %__parent.0.us.i = sdiv i64 %__parent.0.in.us.i, 2 @@ -15791,7 +15791,7 @@ land.rhs.lr.ph.split.us8.i: ; preds = %land.rhs.lr.ph.i land.rhs.us9.i: ; preds = %while.body.us25.i, %land.rhs.lr.ph.split.us8.i %__parent.05.us10.i = phi i64 [ %__parent.02.i, %land.rhs.lr.ph.split.us8.i ], [ %__parent.0.us28.i, %while.body.us25.i ] %__holeIndex.addr.04.us11.i = phi i64 [ %__holeIndex.addr.1, %land.rhs.lr.ph.split.us8.i ], [ %__parent.05.us10.i, %while.body.us25.i ] - %add.ptr.us12.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us10.i + %add.ptr.us12.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us10.i %2 = getelementptr inbounds nuw i8, ptr %add.ptr.us12.i, i64 12 %t.sroa.0.4.vec.extract.i.i.i.i.us.i = load float, ptr %2, align 4 %mul2.i.i.i.i.i.us.i = fmul float %t.sroa.0.4.vec.extract.i.i.i.i.us.i, 5.000000e-01 @@ -15803,7 +15803,7 @@ land.rhs.us9.i: ; preds = %while.body.us25.i, br i1 %cmp.i.i.us24.i, label %while.body.us25.i, label %"_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_2EEEvT_T0_SS_T1_RT2_.exit" while.body.us25.i: ; preds = %land.rhs.us9.i - %add.ptr2.us26.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us11.i + %add.ptr2.us26.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us11.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr2.us26.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.us12.i, i64 32, i1 false) %__parent.0.in.us27.i = add nsw i64 %__parent.05.us10.i, -1 %__parent.0.us28.i = sdiv i64 %__parent.0.in.us27.i, 2 @@ -15819,7 +15819,7 @@ land.rhs.lr.ph.split.i: ; preds = %land.rhs.lr.ph.i land.rhs.i: ; preds = %while.body.i, %land.rhs.lr.ph.split.i %__parent.05.i = phi i64 [ %__parent.02.i, %land.rhs.lr.ph.split.i ], [ %__parent.0.i, %while.body.i ] %__holeIndex.addr.04.i = phi i64 [ %__holeIndex.addr.1, %land.rhs.lr.ph.split.i ], [ %__parent.05.i, %while.body.i ] - %add.ptr.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.i + %add.ptr.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.i %agg.tmp.sroa.2.0.pMin.sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 16 %agg.tmp.sroa.2.0.copyload.i.i.i.i = load float, ptr %agg.tmp.sroa.2.0.pMin.sroa_idx.i.i.i.i, align 8 %mul3.i.i.i.i.i.i = fmul float %agg.tmp.sroa.2.0.copyload.i.i.i.i, 5.000000e-01 @@ -15831,7 +15831,7 @@ land.rhs.i: ; preds = %while.body.i, %land br i1 %cmp.i.i.i, label %while.body.i, label %"_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_2EEEvT_T0_SS_T1_RT2_.exit" while.body.i: ; preds = %land.rhs.i - %add.ptr2.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.i + %add.ptr2.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr2.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i, i64 32, i1 false) %__parent.0.in.i = add nsw i64 %__parent.05.i, -1 %__parent.0.i = sdiv i64 %__parent.0.in.i, 2 @@ -15840,7 +15840,7 @@ while.body.i: ; preds = %land.rhs.i "_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_2EEEvT_T0_SS_T1_RT2_.exit": ; preds = %land.rhs.us9.i, %while.body.us25.i, %land.rhs.us.i, %while.body.us.i, %land.rhs.i, %while.body.i, %if.end17 %__holeIndex.addr.0.lcssa.i = phi i64 [ %__holeIndex.addr.1, %if.end17 ], [ %__holeIndex.addr.04.i, %land.rhs.i ], [ %__parent.05.i, %while.body.i ], [ %__holeIndex.addr.04.us.i, %land.rhs.us.i ], [ %__parent.05.us.i, %while.body.us.i ], [ %__holeIndex.addr.04.us11.i, %land.rhs.us9.i ], [ %__parent.05.us10.i, %while.body.us25.i ] - %add.ptr5.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i + %add.ptr5.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i store i64 %agg.tmp.sroa.0.0.copyload, ptr %add.ptr5.i, align 8 %agg.tmp24.sroa.4.0.add.ptr5.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr5.i, i64 8 store <2 x float> %agg.tmp.sroa.2.0.copyload, ptr %agg.tmp24.sroa.4.0.add.ptr5.i.sroa_idx, align 8 @@ -15868,9 +15868,9 @@ while.body: ; preds = %entry, %"_ZN9__gnu_ %__secondChild.036 = phi i64 [ %spec.select, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZN4pbrt12BVHAggregate14buildRecursiveERNS2_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS5_4spanINS2_12BVHPrimitiveEEEPSt6atomicIiESH_RSt6vectorINS2_9PrimitiveESaISJ_EEE3$_3EclIPSD_SQ_EEbT_T0_.exit" ], [ %__holeIndex, %entry ] %add = shl i64 %__secondChild.036, 1 %mul = add i64 %add, 2 - %add.ptr = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %mul + %add.ptr = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %mul %sub2 = or disjoint i64 %add, 1 - %add.ptr3 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub2 + %add.ptr3 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub2 %bounds.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 8 %agg.tmp.sroa.0.0.copyload.i.i.i = load <2 x float>, ptr %bounds.i.i.i, align 8 %pMax.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 20 @@ -15929,8 +15929,8 @@ _ZN4pbrt6Tuple3INS_6Point3EfEixEi.exit.i.i: ; preds = %while.body %add.i.i1910.i.i = fadd float %mul.i.i2.i159.i.i, %mul.i.i.i65.sink.i.i %cmp.i.i = fcmp olt float %retval.0.i.sroa.speculated11.i.i, %add.i.i1910.i.i %spec.select = select i1 %cmp.i.i, i64 %sub2, i64 %mul - %add.ptr4 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %spec.select - %add.ptr5 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.036 + %add.ptr4 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %spec.select + %add.ptr5 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.036 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr5, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr4, i64 32, i1 false) %cmp = icmp slt i64 %spec.select, %div br i1 %cmp, label %while.body, label %while.end, !llvm.loop !136 @@ -15950,8 +15950,8 @@ land.lhs.true: ; preds = %while.end if.then10: ; preds = %land.lhs.true %add11 = shl nsw i64 %__secondChild.0.lcssa, 1 %sub13 = or disjoint i64 %add11, 1 - %add.ptr14 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub13 - %add.ptr15 = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.0.lcssa + %add.ptr14 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %sub13 + %add.ptr15 = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__secondChild.0.lcssa tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr15, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr14, i64 32, i1 false) br label %if.end17 @@ -15988,7 +15988,7 @@ land.rhs.lr.ph.split.us.i: ; preds = %land.rhs.lr.ph.i land.rhs.us.i: ; preds = %while.body.us.i, %land.rhs.lr.ph.split.us.i %__parent.05.us.i = phi i64 [ %__parent.02.i, %land.rhs.lr.ph.split.us.i ], [ %__parent.0.us.i, %while.body.us.i ] %__holeIndex.addr.04.us.i = phi i64 [ %__holeIndex.addr.1, %land.rhs.lr.ph.split.us.i ], [ %__parent.05.us.i, %while.body.us.i ] - %add.ptr.us.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us.i + %add.ptr.us.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us.i %bounds.i.i.i.us.i = getelementptr inbounds nuw i8, ptr %add.ptr.us.i, i64 8 %agg.tmp.sroa.0.0.copyload.i.i.i.us.i = load <2 x float>, ptr %bounds.i.i.i.us.i, align 8 %pMax.i.i.i.us.i = getelementptr inbounds nuw i8, ptr %add.ptr.us.i, i64 20 @@ -16002,7 +16002,7 @@ land.rhs.us.i: ; preds = %while.body.us.i, %l br i1 %cmp.i.i.us.i, label %while.body.us.i, label %"_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_3EEEvT_T0_SS_T1_RT2_.exit" while.body.us.i: ; preds = %land.rhs.us.i - %add.ptr2.us.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us.i + %add.ptr2.us.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr2.us.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.us.i, i64 32, i1 false) %__parent.0.in.us.i = add nsw i64 %__parent.05.us.i, -1 %__parent.0.us.i = sdiv i64 %__parent.0.in.us.i, 2 @@ -16020,7 +16020,7 @@ land.rhs.lr.ph.split.us8.i: ; preds = %land.rhs.lr.ph.i land.rhs.us9.i: ; preds = %while.body.us25.i, %land.rhs.lr.ph.split.us8.i %__parent.05.us10.i = phi i64 [ %__parent.02.i, %land.rhs.lr.ph.split.us8.i ], [ %__parent.0.us28.i, %while.body.us25.i ] %__holeIndex.addr.04.us11.i = phi i64 [ %__holeIndex.addr.1, %land.rhs.lr.ph.split.us8.i ], [ %__parent.05.us10.i, %while.body.us25.i ] - %add.ptr.us12.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us10.i + %add.ptr.us12.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.us10.i %2 = getelementptr inbounds nuw i8, ptr %add.ptr.us12.i, i64 12 %t.sroa.0.4.vec.extract.i.i.i.i.us.i = load float, ptr %2, align 4 %mul2.i.i.i.i.i.us.i = fmul float %t.sroa.0.4.vec.extract.i.i.i.i.us.i, 5.000000e-01 @@ -16032,7 +16032,7 @@ land.rhs.us9.i: ; preds = %while.body.us25.i, br i1 %cmp.i.i.us24.i, label %while.body.us25.i, label %"_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_3EEEvT_T0_SS_T1_RT2_.exit" while.body.us25.i: ; preds = %land.rhs.us9.i - %add.ptr2.us26.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us11.i + %add.ptr2.us26.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.us11.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr2.us26.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.us12.i, i64 32, i1 false) %__parent.0.in.us27.i = add nsw i64 %__parent.05.us10.i, -1 %__parent.0.us28.i = sdiv i64 %__parent.0.in.us27.i, 2 @@ -16048,7 +16048,7 @@ land.rhs.lr.ph.split.i: ; preds = %land.rhs.lr.ph.i land.rhs.i: ; preds = %while.body.i, %land.rhs.lr.ph.split.i %__parent.05.i = phi i64 [ %__parent.02.i, %land.rhs.lr.ph.split.i ], [ %__parent.0.i, %while.body.i ] %__holeIndex.addr.04.i = phi i64 [ %__holeIndex.addr.1, %land.rhs.lr.ph.split.i ], [ %__parent.05.i, %while.body.i ] - %add.ptr.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.i + %add.ptr.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__parent.05.i %agg.tmp.sroa.2.0.pMin.sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 16 %agg.tmp.sroa.2.0.copyload.i.i.i.i = load float, ptr %agg.tmp.sroa.2.0.pMin.sroa_idx.i.i.i.i, align 8 %mul3.i.i.i.i.i.i = fmul float %agg.tmp.sroa.2.0.copyload.i.i.i.i, 5.000000e-01 @@ -16060,7 +16060,7 @@ land.rhs.i: ; preds = %while.body.i, %land br i1 %cmp.i.i.i, label %while.body.i, label %"_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_3EEEvT_T0_SS_T1_RT2_.exit" while.body.i: ; preds = %land.rhs.i - %add.ptr2.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.i + %add.ptr2.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.04.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr2.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i, i64 32, i1 false) %__parent.0.in.i = add nsw i64 %__parent.05.i, -1 %__parent.0.i = sdiv i64 %__parent.0.in.i, 2 @@ -16069,7 +16069,7 @@ while.body.i: ; preds = %land.rhs.i "_ZSt11__push_heapIPN4pbrt12BVHPrimitiveElS1_N9__gnu_cxx5__ops14_Iter_comp_valIZNS0_12BVHAggregate14buildRecursiveERNS0_11ThreadLocalIN4pstd3pmr21polymorphic_allocatorISt4byteEEEENS8_4spanIS1_EEPSt6atomicIiESJ_RSt6vectorINS0_9PrimitiveESaISL_EEE3$_3EEEvT_T0_SS_T1_RT2_.exit": ; preds = %land.rhs.us9.i, %while.body.us25.i, %land.rhs.us.i, %while.body.us.i, %land.rhs.i, %while.body.i, %if.end17 %__holeIndex.addr.0.lcssa.i = phi i64 [ %__holeIndex.addr.1, %if.end17 ], [ %__holeIndex.addr.04.i, %land.rhs.i ], [ %__parent.05.i, %while.body.i ], [ %__holeIndex.addr.04.us.i, %land.rhs.us.i ], [ %__parent.05.us.i, %while.body.us.i ], [ %__holeIndex.addr.04.us11.i, %land.rhs.us9.i ], [ %__parent.05.us10.i, %while.body.us25.i ] - %add.ptr5.i = getelementptr inbounds %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i + %add.ptr5.i = getelementptr inbounds nuw %"struct.pbrt::BVHPrimitive", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i store i64 %agg.tmp.sroa.0.0.copyload, ptr %add.ptr5.i, align 8 %agg.tmp24.sroa.4.0.add.ptr5.i.sroa_idx = getelementptr inbounds nuw i8, ptr %add.ptr5.i, i64 8 store <2 x float> %agg.tmp.sroa.2.0.copyload, ptr %agg.tmp24.sroa.4.0.add.ptr5.i.sroa_idx, align 8 diff --git a/bench/pbrt-v4/optimized/imgtool.cpp.ll b/bench/pbrt-v4/optimized/imgtool.cpp.ll index 4b8e01edfcb..b8c85f6a9d4 100644 --- a/bench/pbrt-v4/optimized/imgtool.cpp.ll +++ b/bench/pbrt-v4/optimized/imgtool.cpp.ll @@ -33549,7 +33549,7 @@ while.body.i.i.i.i.us: ; preds = %_ZN4pbrt18ImageChan %__parent.0.i.i.i.i.us = phi i64 [ %dec.i.i.i.i.us, %_ZN4pbrt18ImageChannelValuesD2Ev.exit40.i.i.i.i.us ], [ %div9.i.i.i.i.us, %if.end.i.i.i.i.us ] %719 = mul i64 %indvar.i.i.i.i.us, -48 %scevgep.i.i.i.i.us = getelementptr i8, ptr %718, i64 %719 - %add.ptr.i.i.i.i1174.us = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first.addr.0.call.i.i.us, i64 %__parent.0.i.i.i.i.us + %add.ptr.i.i.i.i1174.us = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first.addr.0.call.i.i.us, i64 %__parent.0.i.i.i.i.us %720 = load i64, ptr %add.ptr.i.i.i.i1174.us, align 8 %721 = inttoptr i64 %720 to ptr store ptr %721, ptr %__value.i.i.i.i.sroa.0, align 8 @@ -70761,9 +70761,9 @@ while.body: ; preds = %entry, %"_ZN9__gnu_ %__holeIndex.addr.033 = phi i64 [ %spec.select, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZ7convertSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEE3$_1EclIPN4pbrt18ImageChannelValuesESG_EEbT_T0_.exit" ], [ %__holeIndex, %entry ] %add = shl i64 %__holeIndex.addr.033, 1 %mul = add i64 %add, 2 - %add.ptr = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %mul + %add.ptr = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %mul %sub1 = or disjoint i64 %add, 1 - %add.ptr2 = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %sub1 + %add.ptr2 = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %sub1 %nStored.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 40 %0 = load i64, ptr %nStored.i.i.i.i, align 8 %cmp5.not.i.i.i = icmp eq i64 %0, 0 @@ -70820,8 +70820,8 @@ for.body.i7.i.i: ; preds = %for.body.i7.i.i, %f %div.i16.i.i = fdiv float %sum.0.lcssa.i14.i.i, %conv5.i15.i.i %cmp.i.i = fcmp olt float %div.i.i.i, %div.i16.i.i %spec.select = select i1 %cmp.i.i, i64 %sub1, i64 %mul - %add.ptr3 = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %spec.select - %add.ptr4 = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.033 + %add.ptr3 = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %spec.select + %add.ptr4 = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.033 %call.i = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4pbrt13InlinedVectorIfLi4EN4pstd3pmr21polymorphic_allocatorIfEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr4, ptr noundef nonnull align 8 dereferenceable(48) %add.ptr3) %cmp = icmp slt i64 %spec.select, %div br i1 %cmp, label %while.body, label %while.end, !llvm.loop !365 @@ -70841,8 +70841,8 @@ land.lhs.true: ; preds = %while.end if.then10: ; preds = %land.lhs.true %add11 = shl nsw i64 %__holeIndex.addr.0.lcssa, 1 %sub13 = or disjoint i64 %add11, 1 - %add.ptr14 = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %sub13 - %add.ptr15 = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.0.lcssa + %add.ptr14 = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %sub13 + %add.ptr15 = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.0.lcssa %call.i23 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4pbrt13InlinedVectorIfLi4EN4pstd3pmr21polymorphic_allocatorIfEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr15, ptr noundef nonnull align 8 dereferenceable(48) %add.ptr14) br label %if.end18 @@ -70894,7 +70894,7 @@ land.rhs.i: ; preds = %call.i.i.noexc, %la %__holeIndex.addr.04.i = phi i64 [ %__holeIndex.addr.1, %land.rhs.lr.ph.i ], [ %__parent.05.i, %call.i.i.noexc ] %__parent.05.in.i = add nsw i64 %__holeIndex.addr.04.i, -1 %__parent.05.i = sdiv i64 %__parent.05.in.i, 2 - %add.ptr.i = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__parent.05.i + %add.ptr.i = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__parent.05.i %nStored.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 40 %16 = load i64, ptr %nStored.i.i.i.i.i, align 8 %cmp5.not.i.i.i.i = icmp eq i64 %16, 0 @@ -70950,7 +70950,7 @@ for.body.i7.i.i.i: ; preds = %for.body.i7.i.i.i, br i1 %cmp.i.i.i, label %while.body.i, label %while.end.i while.body.i: ; preds = %"_ZN9__gnu_cxx5__ops14_Iter_comp_valIZ7convertSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEE3$_1EclIPN4pbrt18ImageChannelValuesESF_EEbT_RT0_.exit.i" - %add.ptr2.i = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.04.i + %add.ptr2.i = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.04.i %call.i.i25 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN4pbrt13InlinedVectorIfLi4EN4pstd3pmr21polymorphic_allocatorIfEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr2.i, ptr noundef nonnull align 8 dereferenceable(48) %add.ptr.i) to label %call.i.i.noexc unwind label %lpad.loopexit @@ -70960,7 +70960,7 @@ call.i.i.noexc: ; preds = %while.body.i while.end.i: ; preds = %call.i.i.noexc, %"_ZN9__gnu_cxx5__ops14_Iter_comp_valIZ7convertSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEE3$_1EclIPN4pbrt18ImageChannelValuesESF_EEbT_RT0_.exit.i", %_ZN4pbrt18ImageChannelValuesC2EOS0_.exit %__holeIndex.addr.0.lcssa.i = phi i64 [ %__holeIndex.addr.1, %_ZN4pbrt18ImageChannelValuesC2EOS0_.exit ], [ %__holeIndex.addr.04.i, %"_ZN9__gnu_cxx5__ops14_Iter_comp_valIZ7convertSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EEE3$_1EclIPN4pbrt18ImageChannelValuesESF_EEbT_RT0_.exit.i" ], [ %__parent.05.i, %call.i.i.noexc ] - %add.ptr6.i = getelementptr inbounds %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i + %add.ptr6.i = getelementptr inbounds nuw %"struct.pbrt::ImageChannelValues", ptr %__first, i64 %__holeIndex.addr.0.lcssa.i %call.i10.i26 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZN4pbrt13InlinedVectorIfLi4EN4pstd3pmr21polymorphic_allocatorIfEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %add.ptr6.i, ptr noundef nonnull align 8 dereferenceable(48) %agg.tmp) to label %invoke.cont unwind label %lpad.loopexit.split-lp diff --git a/bench/serde-rs-json/optimized/19be4mv19oulzif3.ll b/bench/serde-rs-json/optimized/19be4mv19oulzif3.ll index dcb67fcbb07..0b3a12d4b9f 100644 --- a/bench/serde-rs-json/optimized/19be4mv19oulzif3.ll +++ b/bench/serde-rs-json/optimized/19be4mv19oulzif3.ll @@ -379,7 +379,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br i1 %.not.i.i, label %.critedge.i.i, label %35 35: ; preds = %30 - %36 = getelementptr inbounds { [3 x i64] }, ptr %32, i64 %33 + %36 = getelementptr inbounds nuw { [3 x i64] }, ptr %32, i64 %33 %37 = sub nsw i64 %31, %.sroa.5.0.copyload.i %38 = mul nsw i64 %37, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %36, ptr nonnull align 8 %34, i64 %38, i1 false), !alias.scope !43, !noalias !46 @@ -388,7 +388,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !53) %39 = getelementptr inbounds { [4 x i64] }, ptr %22, i64 %.sroa.5.0.copyload.i - %40 = getelementptr inbounds { [4 x i64] }, ptr %22, i64 %33 + %40 = getelementptr inbounds nuw { [4 x i64] }, ptr %22, i64 %33 %41 = shl nsw i64 %37, 5 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %40, ptr nonnull align 8 %39, i64 %41, i1 false), !alias.scope !56, !noalias !58 br label %.thread @@ -529,7 +529,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 89: ; preds = %77 %90 = add nuw nsw i64 %.sroa.726.0.i, 1 - %91 = getelementptr inbounds { [3 x i64] }, ptr %87, i64 %90 + %91 = getelementptr inbounds nuw { [3 x i64] }, ptr %87, i64 %90 %92 = sub nuw nsw i64 %86, %.sroa.726.0.i %93 = mul nuw nsw i64 %92, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %91, ptr nonnull align 8 %88, i64 %93, i1 false), !alias.scope !83, !noalias !86 @@ -538,7 +538,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !88) %94 = getelementptr inbounds { [4 x i64] }, ptr %.sroa.06.0.i, i64 %.sroa.726.0.i - %95 = getelementptr inbounds { [4 x i64] }, ptr %.sroa.06.0.i, i64 %90 + %95 = getelementptr inbounds nuw { [4 x i64] }, ptr %.sroa.06.0.i, i64 %90 %96 = shl nuw nsw i64 %92, 5 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %95, ptr nonnull align 8 %94, i64 %96, i1 false), !alias.scope !91, !noalias !93 br label %103 @@ -1055,7 +1055,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec br i1 %.not.i23.i, label %.critedge.i27.i, label %284 284: ; preds = %276 - %285 = getelementptr inbounds { [3 x i64] }, ptr %281, i64 %282 + %285 = getelementptr inbounds nuw { [3 x i64] }, ptr %281, i64 %282 %286 = sub nsw i64 %279, %.sroa.7.0.i %287 = mul nsw i64 %286, 24 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %285, ptr nonnull align 8 %283, i64 %287, i1 false), !alias.scope !181, !noalias !184 @@ -1064,7 +1064,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.24..sroa_idx, i64 32, i1 false) tail call void @llvm.experimental.noalias.scope.decl(metadata !186) %288 = getelementptr inbounds { [4 x i64] }, ptr %spec.select.i, i64 %.sroa.7.0.i - %289 = getelementptr inbounds { [4 x i64] }, ptr %spec.select.i, i64 %282 + %289 = getelementptr inbounds nuw { [4 x i64] }, ptr %spec.select.i, i64 %282 %290 = shl nsw i64 %286, 5 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %289, ptr nonnull align 8 %288, i64 %290, i1 false), !alias.scope !189, !noalias !191 br label %291 @@ -1088,7 +1088,7 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 297: ; preds = %291 %298 = getelementptr inbounds ptr, ptr %294, i64 %282 - %299 = getelementptr inbounds ptr, ptr %294, i64 %295 + %299 = getelementptr inbounds nuw ptr, ptr %294, i64 %295 %300 = sub nsw i64 %279, %.sroa.7.0.i %301 = shl nsw i64 %300, 3 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %299, ptr nonnull align 8 %298, i64 %301, i1 false), !alias.scope !193, !noalias !176 diff --git a/bench/snappy/optimized/snappy.cc.ll b/bench/snappy/optimized/snappy.cc.ll index b1a69629c90..9e28fd00e22 100644 --- a/bench/snappy/optimized/snappy.cc.ll +++ b/bench/snappy/optimized/snappy.cc.ll @@ -2587,7 +2587,7 @@ if.then42: ; preds = %if.end39 %conv1.i = and i32 %value.0.copyload.i, %15 %add46 = add i32 %conv1.i, 1 %conv47 = zext i32 %add46 to i64 - %add.ptr48 = getelementptr inbounds i8, ptr %incdec.ptr, i64 %sub + %add.ptr48 = getelementptr inbounds nuw i8, ptr %incdec.ptr, i64 %sub %.pre177 = ptrtoint ptr %add.ptr48 to i64 %.pre178 = sub i64 %sub.ptr.lhs.cast32, %.pre177 br label %if.end49 @@ -2891,7 +2891,7 @@ for.body: ; preds = %do.body, %for.inc %deferred_src.2147 = phi ptr [ %deferred_src.1, %do.body ], [ %deferred_src.5, %for.inc ] %op.addr.2146 = phi i64 [ %op.addr.1, %do.body ], [ %op.addr.5, %for.inc ] %ip.addr.2145 = phi ptr [ %ip.addr.1, %do.body ], [ %cond11.i, %for.inc ] - %arrayidx.i.i = getelementptr inbounds [256 x i16], ptr @_ZN6snappy12_GLOBAL__N_118kLengthMinusOffsetE, i64 0, i64 %tag.1149 + %arrayidx.i.i = getelementptr inbounds nuw [256 x i16], ptr @_ZN6snappy12_GLOBAL__N_118kLengthMinusOffsetE, i64 0, i64 %tag.1149 %1 = load i16, ptr %arrayidx.i.i, align 2 %conv5 = sext i16 %1 to i64 %shr.i = lshr i64 %tag.1149, 2 @@ -3572,7 +3572,7 @@ for.body.i: ; preds = %for.inc.i, %do.body %deferred_length.298.i = phi i64 [ %deferred_length.1.i, %do.body.i ], [ %deferred_length.5.i, %for.inc.i ] %op.addr.297.i = phi i64 [ %op.addr.1.i, %do.body.i ], [ %op.addr.5.i, %for.inc.i ] %ip.addr.296.i = phi ptr [ %ip.addr.1.i, %do.body.i ], [ %cond11.i.i, %for.inc.i ] - %arrayidx.i.i.i = getelementptr inbounds [256 x i16], ptr @_ZN6snappy12_GLOBAL__N_118kLengthMinusOffsetE, i64 0, i64 %tag.199.i + %arrayidx.i.i.i = getelementptr inbounds nuw [256 x i16], ptr @_ZN6snappy12_GLOBAL__N_118kLengthMinusOffsetE, i64 0, i64 %tag.199.i %8 = load i16, ptr %arrayidx.i.i.i, align 2 %conv5.i = sext i16 %8 to i64 %shr.i.i = lshr i64 %tag.199.i, 2 @@ -3717,7 +3717,7 @@ if.then39: ; preds = %if.end36 %conv1.i = and i32 %value.0.copyload.i, %22 %add44 = add i32 %conv1.i, 1 %conv45 = zext i32 %add44 to i64 - %add.ptr46 = getelementptr inbounds i8, ptr %incdec.ptr, i64 %sub40 + %add.ptr46 = getelementptr inbounds nuw i8, ptr %incdec.ptr, i64 %sub40 br label %if.end47 if.end47: ; preds = %if.then39, %if.end36 @@ -4029,7 +4029,7 @@ if.then42: ; preds = %if.end39 %conv1.i = and i32 %value.0.copyload.i, %19 %add46 = add i32 %conv1.i, 1 %conv47 = zext i32 %add46 to i64 - %add.ptr48 = getelementptr inbounds i8, ptr %incdec.ptr, i64 %sub + %add.ptr48 = getelementptr inbounds nuw i8, ptr %incdec.ptr, i64 %sub %.pre213 = ptrtoint ptr %add.ptr48 to i64 %.pre214 = sub i64 %sub.ptr.lhs.cast32, %.pre213 br label %if.end49 @@ -4408,7 +4408,7 @@ if.then42: ; preds = %if.end39 %conv1.i = and i32 %value.0.copyload.i, %21 %add46 = add i32 %conv1.i, 1 %conv47 = zext i32 %add46 to i64 - %add.ptr48 = getelementptr inbounds i8, ptr %incdec.ptr, i64 %sub + %add.ptr48 = getelementptr inbounds nuw i8, ptr %incdec.ptr, i64 %sub %.pre162 = ptrtoint ptr %add.ptr48 to i64 %.pre163 = sub i64 %sub.ptr.lhs.cast32, %.pre162 br label %if.end49 diff --git a/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll b/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll index 10b2468c7ac..656513eaa6e 100644 --- a/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll +++ b/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll @@ -1331,10 +1331,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h7185fd4936b988f1E.exit: ; preds %.0.i = phi i64 [ %19, %18 ], [ %spec.select177.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h8b3161f374649dc8E.exit10.i86.i" ] %23 = icmp ult i64 %.0121.i, %.sroa.14.0108 call void @llvm.assume(i1 %23) - %24 = getelementptr inbounds { i32, i16 }, ptr %.sroa.0.0109, i64 %.0121.i + %24 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %.0121.i %25 = icmp ult i64 %.0.i, %.sroa.14.0108 call void @llvm.assume(i1 %25) - %26 = getelementptr inbounds { i32, i16 }, ptr %.sroa.0.0109, i64 %.0.i + %26 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %.0.i %.val.i.i.i = load i32, ptr %24, align 4, !alias.scope !102, !noalias !105, !noundef !9 %27 = getelementptr i8, ptr %24, i64 4 %.val5.i.i.i = load i16, ptr %27, align 2, !alias.scope !102, !noalias !105 @@ -1398,7 +1398,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h7185fd4936b988f1E.exit: ; preds %52 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %19 %53 = icmp ult i64 %50, %.sroa.14.0108 call void @llvm.assume(i1 %53) - %54 = getelementptr inbounds { i32, i16 }, ptr %.sroa.0.0109, i64 %50 + %54 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %50 %.val.i.i15.i = load i32, ptr %52, align 4, !alias.scope !102, !noalias !124, !noundef !9 %55 = getelementptr i8, ptr %52, i64 4 %.val5.i.i16.i = load i16, ptr %55, align 2, !alias.scope !102, !noalias !124 @@ -1441,7 +1441,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h7185fd4936b988f1E.exit: ; preds %.2.i = phi i64 [ %51, %68 ], [ %.1.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h8b3161f374649dc8E.exit.i20.i" ] %.val5.i12.i27.i = phi i16 [ %.val5.i6.i24.i, %68 ], [ %.val7.i8.i21.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h8b3161f374649dc8E.exit.i20.i" ] %.val.i11.i28.i = phi i32 [ %.val.i5.i23.i, %68 ], [ %.val6.i7.i22.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h8b3161f374649dc8E.exit.i20.i" ] - %70 = getelementptr inbounds { i32, i16 }, ptr %.sroa.0.0109, i64 %61 + %70 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %61 %.val6.i13.i29.i = load i32, ptr %70, align 4, !alias.scope !102, !noalias !138, !noundef !9 %71 = getelementptr i8, ptr %70, i64 4 %.val7.i14.i30.i = load i16, ptr %71, align 2, !alias.scope !102, !noalias !138 @@ -1459,7 +1459,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h7185fd4936b988f1E.exit: ; preds %79 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %20 %80 = icmp ult i64 %76, %.sroa.14.0108 call void @llvm.assume(i1 %80) - %81 = getelementptr inbounds { i32, i16 }, ptr %.sroa.0.0109, i64 %76 + %81 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %76 %.val.i.i45.i = load i32, ptr %79, align 4, !alias.scope !102, !noalias !143, !noundef !9 %82 = getelementptr i8, ptr %79, i64 4 %.val5.i.i46.i = load i16, ptr %82, align 2, !alias.scope !102, !noalias !143 @@ -1503,7 +1503,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h7185fd4936b988f1E.exit: ; preds %.5.i = phi i64 [ %77, %96 ], [ %.4.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h8b3161f374649dc8E.exit.i50.i" ] %.val5.i12.i57.i = phi i16 [ %.val5.i6.i54.i, %96 ], [ %.val7.i8.i51.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h8b3161f374649dc8E.exit.i50.i" ] %.val.i11.i58.i = phi i32 [ %.val.i5.i53.i, %96 ], [ %.val6.i7.i52.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h8b3161f374649dc8E.exit.i50.i" ] - %98 = getelementptr inbounds { i32, i16 }, ptr %.sroa.0.0109, i64 %89 + %98 = getelementptr inbounds nuw { i32, i16 }, ptr %.sroa.0.0109, i64 %89 %.val6.i13.i59.i = load i32, ptr %98, align 4, !alias.scope !102, !noalias !157, !noundef !9 %99 = getelementptr i8, ptr %98, i64 4 %.val7.i14.i60.i = load i16, ptr %99, align 2, !alias.scope !102, !noalias !157 @@ -2217,10 +2217,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hb197527b88108745E.exit: ; preds %.0.i = phi i64 [ %19, %18 ], [ %spec.select177.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d4d279affb3ff01E.exit10.i86.i" ] %23 = icmp ult i64 %.0121.i, %.sroa.14.0108 call void @llvm.assume(i1 %23) - %24 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0109, i64 %.0121.i + %24 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %.0121.i %25 = icmp ult i64 %.0.i, %.sroa.14.0108 call void @llvm.assume(i1 %25) - %26 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0109, i64 %.0.i + %26 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %.0.i %.val.i.i.i = load i32, ptr %24, align 4, !alias.scope !232, !noalias !235, !noundef !9 %27 = getelementptr i8, ptr %24, i64 4 %.val5.i.i.i = load i32, ptr %27, align 4, !alias.scope !232, !noalias !235 @@ -2284,7 +2284,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hb197527b88108745E.exit: ; preds %52 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %19 %53 = icmp ult i64 %50, %.sroa.14.0108 call void @llvm.assume(i1 %53) - %54 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0109, i64 %50 + %54 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %50 %.val.i.i15.i = load i32, ptr %52, align 4, !alias.scope !232, !noalias !254, !noundef !9 %55 = getelementptr i8, ptr %52, i64 4 %.val5.i.i16.i = load i32, ptr %55, align 4, !alias.scope !232, !noalias !254 @@ -2327,7 +2327,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hb197527b88108745E.exit: ; preds %.2.i = phi i64 [ %51, %68 ], [ %.1.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d4d279affb3ff01E.exit.i20.i" ] %.val5.i12.i27.i = phi i32 [ %.val5.i6.i24.i, %68 ], [ %.val7.i8.i21.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d4d279affb3ff01E.exit.i20.i" ] %.val.i11.i28.i = phi i32 [ %.val.i5.i23.i, %68 ], [ %.val6.i7.i22.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d4d279affb3ff01E.exit.i20.i" ] - %70 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0109, i64 %61 + %70 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %61 %.val6.i13.i29.i = load i32, ptr %70, align 4, !alias.scope !232, !noalias !268, !noundef !9 %71 = getelementptr i8, ptr %70, i64 4 %.val7.i14.i30.i = load i32, ptr %71, align 4, !alias.scope !232, !noalias !268 @@ -2345,7 +2345,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hb197527b88108745E.exit: ; preds %79 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %20 %80 = icmp ult i64 %76, %.sroa.14.0108 call void @llvm.assume(i1 %80) - %81 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0109, i64 %76 + %81 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %76 %.val.i.i45.i = load i32, ptr %79, align 4, !alias.scope !232, !noalias !273, !noundef !9 %82 = getelementptr i8, ptr %79, i64 4 %.val5.i.i46.i = load i32, ptr %82, align 4, !alias.scope !232, !noalias !273 @@ -2389,7 +2389,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hb197527b88108745E.exit: ; preds %.5.i = phi i64 [ %77, %96 ], [ %.4.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d4d279affb3ff01E.exit.i50.i" ] %.val5.i12.i57.i = phi i32 [ %.val5.i6.i54.i, %96 ], [ %.val7.i8.i51.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d4d279affb3ff01E.exit.i50.i" ] %.val.i11.i58.i = phi i32 [ %.val.i5.i53.i, %96 ], [ %.val6.i7.i52.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d4d279affb3ff01E.exit.i50.i" ] - %98 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0109, i64 %89 + %98 = getelementptr inbounds nuw { i32, i32 }, ptr %.sroa.0.0109, i64 %89 %.val6.i13.i59.i = load i32, ptr %98, align 4, !alias.scope !232, !noalias !287, !noundef !9 %99 = getelementptr i8, ptr %98, i64 4 %.val7.i14.i60.i = load i32, ptr %99, align 4, !alias.scope !232, !noalias !287 @@ -3103,10 +3103,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hfa40986fc61f5882E.exit: ; preds %.0.i = phi i64 [ %19, %18 ], [ %spec.select177.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h4630411944662b81E.exit10.i86.i" ] %23 = icmp ult i64 %.0121.i, %.sroa.14.0108 call void @llvm.assume(i1 %23) - %24 = getelementptr inbounds { i32, i8 }, ptr %.sroa.0.0109, i64 %.0121.i + %24 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %.0121.i %25 = icmp ult i64 %.0.i, %.sroa.14.0108 call void @llvm.assume(i1 %25) - %26 = getelementptr inbounds { i32, i8 }, ptr %.sroa.0.0109, i64 %.0.i + %26 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %.0.i %.val.i.i.i = load i32, ptr %24, align 4, !alias.scope !362, !noalias !365, !noundef !9 %27 = getelementptr i8, ptr %24, i64 4 %.val5.i.i.i = load i8, ptr %27, align 1, !alias.scope !362, !noalias !365 @@ -3170,7 +3170,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hfa40986fc61f5882E.exit: ; preds %52 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %19 %53 = icmp ult i64 %50, %.sroa.14.0108 call void @llvm.assume(i1 %53) - %54 = getelementptr inbounds { i32, i8 }, ptr %.sroa.0.0109, i64 %50 + %54 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %50 %.val.i.i15.i = load i32, ptr %52, align 4, !alias.scope !362, !noalias !384, !noundef !9 %55 = getelementptr i8, ptr %52, i64 4 %.val5.i.i16.i = load i8, ptr %55, align 1, !alias.scope !362, !noalias !384 @@ -3213,7 +3213,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hfa40986fc61f5882E.exit: ; preds %.2.i = phi i64 [ %51, %68 ], [ %.1.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h4630411944662b81E.exit.i20.i" ] %.val5.i12.i27.i = phi i8 [ %.val5.i6.i24.i, %68 ], [ %.val7.i8.i21.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h4630411944662b81E.exit.i20.i" ] %.val.i11.i28.i = phi i32 [ %.val.i5.i23.i, %68 ], [ %.val6.i7.i22.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h4630411944662b81E.exit.i20.i" ] - %70 = getelementptr inbounds { i32, i8 }, ptr %.sroa.0.0109, i64 %61 + %70 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %61 %.val6.i13.i29.i = load i32, ptr %70, align 4, !alias.scope !362, !noalias !398, !noundef !9 %71 = getelementptr i8, ptr %70, i64 4 %.val7.i14.i30.i = load i8, ptr %71, align 1, !alias.scope !362, !noalias !398 @@ -3231,7 +3231,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hfa40986fc61f5882E.exit: ; preds %79 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %20 %80 = icmp ult i64 %76, %.sroa.14.0108 call void @llvm.assume(i1 %80) - %81 = getelementptr inbounds { i32, i8 }, ptr %.sroa.0.0109, i64 %76 + %81 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %76 %.val.i.i45.i = load i32, ptr %79, align 4, !alias.scope !362, !noalias !403, !noundef !9 %82 = getelementptr i8, ptr %79, i64 4 %.val5.i.i46.i = load i8, ptr %82, align 1, !alias.scope !362, !noalias !403 @@ -3275,7 +3275,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hfa40986fc61f5882E.exit: ; preds %.5.i = phi i64 [ %77, %96 ], [ %.4.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h4630411944662b81E.exit.i50.i" ] %.val5.i12.i57.i = phi i8 [ %.val5.i6.i54.i, %96 ], [ %.val7.i8.i51.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h4630411944662b81E.exit.i50.i" ] %.val.i11.i58.i = phi i32 [ %.val.i5.i53.i, %96 ], [ %.val6.i7.i52.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h4630411944662b81E.exit.i50.i" ] - %98 = getelementptr inbounds { i32, i8 }, ptr %.sroa.0.0109, i64 %89 + %98 = getelementptr inbounds nuw { i32, i8 }, ptr %.sroa.0.0109, i64 %89 %.val6.i13.i59.i = load i32, ptr %98, align 4, !alias.scope !362, !noalias !417, !noundef !9 %99 = getelementptr i8, ptr %98, i64 4 %.val7.i14.i60.i = load i8, ptr %99, align 1, !alias.scope !362, !noalias !417 @@ -3995,10 +3995,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17ha23048004b7e3c37E.exit: ; preds %.0.i = phi i64 [ %25, %24 ], [ %spec.select177.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h0b54cb09a888c56fE.exit10.i86.i" ] %29 = icmp ult i64 %.0121.i, %.sroa.14.0102 call void @llvm.assume(i1 %29) - %30 = getelementptr inbounds { i32, i64 }, ptr %.sroa.0.0103, i64 %.0121.i + %30 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %.0121.i %31 = icmp ult i64 %.0.i, %.sroa.14.0102 call void @llvm.assume(i1 %31) - %32 = getelementptr inbounds { i32, i64 }, ptr %.sroa.0.0103, i64 %.0.i + %32 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %.0.i %.val.i.i.i = load i32, ptr %30, align 4, !alias.scope !492, !noalias !495, !noundef !9 %33 = getelementptr i8, ptr %30, i64 8 %.val5.i.i.i = load i64, ptr %33, align 8, !alias.scope !492, !noalias !495 @@ -4062,7 +4062,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17ha23048004b7e3c37E.exit: ; preds %58 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %25 %59 = icmp ult i64 %56, %.sroa.14.0102 call void @llvm.assume(i1 %59) - %60 = getelementptr inbounds { i32, i64 }, ptr %.sroa.0.0103, i64 %56 + %60 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %56 %.val.i.i15.i = load i32, ptr %58, align 4, !alias.scope !492, !noalias !514, !noundef !9 %61 = getelementptr i8, ptr %58, i64 8 %.val5.i.i16.i = load i64, ptr %61, align 8, !alias.scope !492, !noalias !514 @@ -4105,7 +4105,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17ha23048004b7e3c37E.exit: ; preds %.2.i = phi i64 [ %57, %74 ], [ %.1.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h0b54cb09a888c56fE.exit.i20.i" ] %.val5.i12.i27.i = phi i64 [ %.val5.i6.i24.i, %74 ], [ %.val7.i8.i21.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h0b54cb09a888c56fE.exit.i20.i" ] %.val.i11.i28.i = phi i32 [ %.val.i5.i23.i, %74 ], [ %.val6.i7.i22.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h0b54cb09a888c56fE.exit.i20.i" ] - %76 = getelementptr inbounds { i32, i64 }, ptr %.sroa.0.0103, i64 %67 + %76 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %67 %.val6.i13.i29.i = load i32, ptr %76, align 4, !alias.scope !492, !noalias !528, !noundef !9 %77 = getelementptr i8, ptr %76, i64 8 %.val7.i14.i30.i = load i64, ptr %77, align 8, !alias.scope !492, !noalias !528 @@ -4123,7 +4123,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17ha23048004b7e3c37E.exit: ; preds %85 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %26 %86 = icmp ult i64 %82, %.sroa.14.0102 call void @llvm.assume(i1 %86) - %87 = getelementptr inbounds { i32, i64 }, ptr %.sroa.0.0103, i64 %82 + %87 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %82 %.val.i.i45.i = load i32, ptr %85, align 4, !alias.scope !492, !noalias !533, !noundef !9 %88 = getelementptr i8, ptr %85, i64 8 %.val5.i.i46.i = load i64, ptr %88, align 8, !alias.scope !492, !noalias !533 @@ -4167,7 +4167,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17ha23048004b7e3c37E.exit: ; preds %.5.i = phi i64 [ %83, %102 ], [ %.4.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h0b54cb09a888c56fE.exit.i50.i" ] %.val5.i12.i57.i = phi i64 [ %.val5.i6.i54.i, %102 ], [ %.val7.i8.i51.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h0b54cb09a888c56fE.exit.i50.i" ] %.val.i11.i58.i = phi i32 [ %.val.i5.i53.i, %102 ], [ %.val6.i7.i52.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h0b54cb09a888c56fE.exit.i50.i" ] - %104 = getelementptr inbounds { i32, i64 }, ptr %.sroa.0.0103, i64 %95 + %104 = getelementptr inbounds nuw { i32, i64 }, ptr %.sroa.0.0103, i64 %95 %.val6.i13.i59.i = load i32, ptr %104, align 4, !alias.scope !492, !noalias !547, !noundef !9 %105 = getelementptr i8, ptr %104, i64 8 %.val7.i14.i60.i = load i64, ptr %105, align 8, !alias.scope !492, !noalias !547 diff --git a/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll b/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll index c005309297a..e2b1943a45d 100644 --- a/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll +++ b/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll @@ -18563,7 +18563,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !4394 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !4365 %.sroa.0.012.i.i = and i64 %59, %143 - %144 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.012.i.i + %144 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %144, align 1, !noalias !4406 %145 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %146 = bitcast <16 x i1> %145 to i16 @@ -18576,7 +18576,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %147 = add i64 %.sroa.7.015.i.i, 16 %148 = add i64 %147, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %148, %59 - %149 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.0.i.i8 + %149 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %149, align 1, !noalias !4406 %150 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %151 = bitcast <16 x i1> %150 to i16 @@ -18590,7 +18590,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %153 = zext nneg i16 %152 to i64 %154 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %153 %155 = and i64 %154, %59 - %156 = getelementptr inbounds i8, ptr %62, i64 %155 + %156 = getelementptr inbounds nuw i8, ptr %62, i64 %155 %157 = load i8, ptr %156, align 1, !noalias !4413, !noundef !4 %158 = icmp sgt i8 %157, -1 br i1 %158, label %159, label %166 @@ -18607,7 +18607,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 166: ; preds = %159, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %165, %159 ], [ %155, %._crit_edge.i.i ] - %167 = getelementptr inbounds i8, ptr %62, i64 %.0.i.i.i7 + %167 = getelementptr inbounds nuw i8, ptr %62, i64 %.0.i.i.i7 %168 = lshr i64 %143, 57 %169 = trunc nuw nsw i64 %168 to i8 %170 = add nsw i64 %.0.i.i.i7, -16 @@ -18964,7 +18964,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !4516 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %8), !noalias !4482 %.sroa.0.012.i.i = and i64 %60, %144 - %145 = getelementptr inbounds i8, ptr %63, i64 %.sroa.0.012.i.i + %145 = getelementptr inbounds nuw i8, ptr %63, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %145, align 1, !noalias !4528 %146 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %147 = bitcast <16 x i1> %146 to i16 @@ -18977,7 +18977,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %148 = add i64 %.sroa.7.015.i.i, 16 %149 = add i64 %148, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %149, %60 - %150 = getelementptr inbounds i8, ptr %63, i64 %.sroa.0.0.i.i8 + %150 = getelementptr inbounds nuw i8, ptr %63, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %150, align 1, !noalias !4528 %151 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %152 = bitcast <16 x i1> %151 to i16 @@ -18991,7 +18991,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %154 = zext nneg i16 %153 to i64 %155 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %154 %156 = and i64 %155, %60 - %157 = getelementptr inbounds i8, ptr %63, i64 %156 + %157 = getelementptr inbounds nuw i8, ptr %63, i64 %156 %158 = load i8, ptr %157, align 1, !noalias !4535, !noundef !4 %159 = icmp sgt i8 %158, -1 br i1 %159, label %160, label %167 @@ -19008,7 +19008,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 167: ; preds = %160, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %166, %160 ], [ %156, %._crit_edge.i.i ] - %168 = getelementptr inbounds i8, ptr %63, i64 %.0.i.i.i7 + %168 = getelementptr inbounds nuw i8, ptr %63, i64 %.0.i.i.i7 %169 = lshr i64 %144, 57 %170 = trunc nuw nsw i64 %169 to i8 %171 = add nsw i64 %.0.i.i.i7, -16 @@ -19369,7 +19369,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !4629 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !4603 %.sroa.0.012.i.i = and i64 %62, %149 - %150 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.012.i.i + %150 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %150, align 1, !noalias !4641 %151 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %152 = bitcast <16 x i1> %151 to i16 @@ -19382,7 +19382,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %153 = add i64 %.sroa.7.015.i.i, 16 %154 = add i64 %153, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %154, %62 - %155 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i.i8 + %155 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %155, align 1, !noalias !4641 %156 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %157 = bitcast <16 x i1> %156 to i16 @@ -19396,7 +19396,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %159 = zext nneg i16 %158 to i64 %160 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %159 %161 = and i64 %160, %62 - %162 = getelementptr inbounds i8, ptr %65, i64 %161 + %162 = getelementptr inbounds nuw i8, ptr %65, i64 %161 %163 = load i8, ptr %162, align 1, !noalias !4648, !noundef !4 %164 = icmp sgt i8 %163, -1 br i1 %164, label %165, label %172 @@ -19413,7 +19413,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 172: ; preds = %165, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %171, %165 ], [ %161, %._crit_edge.i.i ] - %173 = getelementptr inbounds i8, ptr %65, i64 %.0.i.i.i7 + %173 = getelementptr inbounds nuw i8, ptr %65, i64 %.0.i.i.i7 %174 = lshr i64 %149, 57 %175 = trunc nuw nsw i64 %174 to i8 %176 = add nsw i64 %.0.i.i.i7, -16 @@ -19774,7 +19774,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !4742 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !4716 %.sroa.0.012.i.i = and i64 %62, %149 - %150 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.012.i.i + %150 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %150, align 1, !noalias !4754 %151 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %152 = bitcast <16 x i1> %151 to i16 @@ -19787,7 +19787,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %153 = add i64 %.sroa.7.015.i.i, 16 %154 = add i64 %153, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %154, %62 - %155 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i.i8 + %155 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %155, align 1, !noalias !4754 %156 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %157 = bitcast <16 x i1> %156 to i16 @@ -19801,7 +19801,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %159 = zext nneg i16 %158 to i64 %160 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %159 %161 = and i64 %160, %62 - %162 = getelementptr inbounds i8, ptr %65, i64 %161 + %162 = getelementptr inbounds nuw i8, ptr %65, i64 %161 %163 = load i8, ptr %162, align 1, !noalias !4761, !noundef !4 %164 = icmp sgt i8 %163, -1 br i1 %164, label %165, label %172 @@ -19818,7 +19818,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 172: ; preds = %165, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %171, %165 ], [ %161, %._crit_edge.i.i ] - %173 = getelementptr inbounds i8, ptr %65, i64 %.0.i.i.i7 + %173 = getelementptr inbounds nuw i8, ptr %65, i64 %.0.i.i.i7 %174 = lshr i64 %149, 57 %175 = trunc nuw nsw i64 %174 to i8 %176 = add nsw i64 %.0.i.i.i7, -16 @@ -20178,7 +20178,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !4852 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !4827 %.sroa.0.012.i.i = and i64 %64, %152 - %153 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %153 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %153, align 1, !noalias !4864 %154 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %155 = bitcast <16 x i1> %154 to i16 @@ -20191,7 +20191,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %156 = add i64 %.sroa.7.015.i.i, 16 %157 = add i64 %156, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %157, %64 - %158 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i7 + %158 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %158, align 1, !noalias !4864 %159 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -20205,7 +20205,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %162 = zext nneg i16 %161 to i64 %163 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %162 %164 = and i64 %163, %64 - %165 = getelementptr inbounds i8, ptr %67, i64 %164 + %165 = getelementptr inbounds nuw i8, ptr %67, i64 %164 %166 = load i8, ptr %165, align 1, !noalias !4871, !noundef !4 %167 = icmp sgt i8 %166, -1 br i1 %167, label %168, label %175 @@ -20222,7 +20222,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 175: ; preds = %168, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %174, %168 ], [ %164, %._crit_edge.i.i ] - %176 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i6 + %176 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i6 %177 = lshr i64 %152, 57 %178 = trunc nuw nsw i64 %177 to i8 %179 = add nsw i64 %.0.i.i.i6, -16 @@ -20583,7 +20583,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !4962 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !4937 %.sroa.0.012.i.i = and i64 %64, %152 - %153 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %153 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %153, align 1, !noalias !4974 %154 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %155 = bitcast <16 x i1> %154 to i16 @@ -20596,7 +20596,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %156 = add i64 %.sroa.7.015.i.i, 16 %157 = add i64 %156, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %157, %64 - %158 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i7 + %158 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %158, align 1, !noalias !4974 %159 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -20610,7 +20610,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %162 = zext nneg i16 %161 to i64 %163 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %162 %164 = and i64 %163, %64 - %165 = getelementptr inbounds i8, ptr %67, i64 %164 + %165 = getelementptr inbounds nuw i8, ptr %67, i64 %164 %166 = load i8, ptr %165, align 1, !noalias !4981, !noundef !4 %167 = icmp sgt i8 %166, -1 br i1 %167, label %168, label %175 @@ -20627,7 +20627,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 175: ; preds = %168, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %174, %168 ], [ %164, %._crit_edge.i.i ] - %176 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i6 + %176 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i6 %177 = lshr i64 %152, 57 %178 = trunc nuw nsw i64 %177 to i8 %179 = add nsw i64 %.0.i.i.i6, -16 @@ -21006,7 +21006,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5087 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %8), !noalias !5053 %.sroa.0.012.i.i = and i64 %68, %161 - %162 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.012.i.i + %162 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %162, align 1, !noalias !5099 %163 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %164 = bitcast <16 x i1> %163 to i16 @@ -21019,7 +21019,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %165 = add i64 %.sroa.7.015.i.i, 16 %166 = add i64 %165, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %166, %68 - %167 = getelementptr inbounds i8, ptr %71, i64 %.sroa.0.0.i.i8 + %167 = getelementptr inbounds nuw i8, ptr %71, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %167, align 1, !noalias !5099 %168 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %169 = bitcast <16 x i1> %168 to i16 @@ -21033,7 +21033,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %171 = zext nneg i16 %170 to i64 %172 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %171 %173 = and i64 %172, %68 - %174 = getelementptr inbounds i8, ptr %71, i64 %173 + %174 = getelementptr inbounds nuw i8, ptr %71, i64 %173 %175 = load i8, ptr %174, align 1, !noalias !5106, !noundef !4 %176 = icmp sgt i8 %175, -1 br i1 %176, label %177, label %184 @@ -21050,7 +21050,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 184: ; preds = %177, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %183, %177 ], [ %173, %._crit_edge.i.i ] - %185 = getelementptr inbounds i8, ptr %71, i64 %.0.i.i.i7 + %185 = getelementptr inbounds nuw i8, ptr %71, i64 %.0.i.i.i7 %186 = lshr i64 %161, 57 %187 = trunc nuw nsw i64 %186 to i8 %188 = add nsw i64 %.0.i.i.i7, -16 @@ -21419,7 +21419,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5200 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5174 %.sroa.0.012.i.i = and i64 %64, %156 - %157 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %157 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %157, align 1, !noalias !5212 %158 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %159 = bitcast <16 x i1> %158 to i16 @@ -21432,7 +21432,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %160 = add i64 %.sroa.7.015.i.i, 16 %161 = add i64 %160, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %161, %64 - %162 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i8 + %162 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %162, align 1, !noalias !5212 %163 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %164 = bitcast <16 x i1> %163 to i16 @@ -21446,7 +21446,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %166 = zext nneg i16 %165 to i64 %167 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %166 %168 = and i64 %167, %64 - %169 = getelementptr inbounds i8, ptr %67, i64 %168 + %169 = getelementptr inbounds nuw i8, ptr %67, i64 %168 %170 = load i8, ptr %169, align 1, !noalias !5219, !noundef !4 %171 = icmp sgt i8 %170, -1 br i1 %171, label %172, label %179 @@ -21463,7 +21463,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 179: ; preds = %172, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %178, %172 ], [ %168, %._crit_edge.i.i ] - %180 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i7 + %180 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i7 %181 = lshr i64 %156, 57 %182 = trunc nuw nsw i64 %181 to i8 %183 = add nsw i64 %.0.i.i.i7, -16 @@ -21826,7 +21826,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5313 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5288 %.sroa.0.012.i.i = and i64 %64, %156 - %157 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %157 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %157, align 1, !noalias !5325 %158 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %159 = bitcast <16 x i1> %158 to i16 @@ -21839,7 +21839,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %160 = add i64 %.sroa.7.015.i.i, 16 %161 = add i64 %160, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %161, %64 - %162 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i7 + %162 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %162, align 1, !noalias !5325 %163 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %164 = bitcast <16 x i1> %163 to i16 @@ -21853,7 +21853,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %166 = zext nneg i16 %165 to i64 %167 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %166 %168 = and i64 %167, %64 - %169 = getelementptr inbounds i8, ptr %67, i64 %168 + %169 = getelementptr inbounds nuw i8, ptr %67, i64 %168 %170 = load i8, ptr %169, align 1, !noalias !5332, !noundef !4 %171 = icmp sgt i8 %170, -1 br i1 %171, label %172, label %179 @@ -21870,7 +21870,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 179: ; preds = %172, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %178, %172 ], [ %168, %._crit_edge.i.i ] - %180 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i6 + %180 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i6 %181 = lshr i64 %156, 57 %182 = trunc nuw nsw i64 %181 to i8 %183 = add nsw i64 %.0.i.i.i6, -16 @@ -22223,7 +22223,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5426 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5400 %.sroa.0.012.i.i = and i64 %59, %143 - %144 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.012.i.i + %144 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %144, align 1, !noalias !5438 %145 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %146 = bitcast <16 x i1> %145 to i16 @@ -22236,7 +22236,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %147 = add i64 %.sroa.7.015.i.i, 16 %148 = add i64 %147, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %148, %59 - %149 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.0.i.i8 + %149 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %149, align 1, !noalias !5438 %150 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %151 = bitcast <16 x i1> %150 to i16 @@ -22250,7 +22250,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %153 = zext nneg i16 %152 to i64 %154 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %153 %155 = and i64 %154, %59 - %156 = getelementptr inbounds i8, ptr %62, i64 %155 + %156 = getelementptr inbounds nuw i8, ptr %62, i64 %155 %157 = load i8, ptr %156, align 1, !noalias !5445, !noundef !4 %158 = icmp sgt i8 %157, -1 br i1 %158, label %159, label %166 @@ -22267,7 +22267,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 166: ; preds = %159, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %165, %159 ], [ %155, %._crit_edge.i.i ] - %167 = getelementptr inbounds i8, ptr %62, i64 %.0.i.i.i7 + %167 = getelementptr inbounds nuw i8, ptr %62, i64 %.0.i.i.i7 %168 = lshr i64 %143, 57 %169 = trunc nuw nsw i64 %168 to i8 %170 = add nsw i64 %.0.i.i.i7, -16 @@ -22627,7 +22627,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5536 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5511 %.sroa.0.012.i.i = and i64 %64, %152 - %153 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %153 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %153, align 1, !noalias !5548 %154 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %155 = bitcast <16 x i1> %154 to i16 @@ -22640,7 +22640,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %156 = add i64 %.sroa.7.015.i.i, 16 %157 = add i64 %156, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %157, %64 - %158 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i7 + %158 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %158, align 1, !noalias !5548 %159 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -22654,7 +22654,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %162 = zext nneg i16 %161 to i64 %163 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %162 %164 = and i64 %163, %64 - %165 = getelementptr inbounds i8, ptr %67, i64 %164 + %165 = getelementptr inbounds nuw i8, ptr %67, i64 %164 %166 = load i8, ptr %165, align 1, !noalias !5555, !noundef !4 %167 = icmp sgt i8 %166, -1 br i1 %167, label %168, label %175 @@ -22671,7 +22671,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 175: ; preds = %168, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %174, %168 ], [ %164, %._crit_edge.i.i ] - %176 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i6 + %176 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i6 %177 = lshr i64 %152, 57 %178 = trunc nuw nsw i64 %177 to i8 %179 = add nsw i64 %.0.i.i.i6, -16 @@ -23019,7 +23019,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5649 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5624 %.sroa.0.012.i.i = and i64 %59, %143 - %144 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.012.i.i + %144 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %144, align 1, !noalias !5661 %145 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %146 = bitcast <16 x i1> %145 to i16 @@ -23032,7 +23032,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %147 = add i64 %.sroa.7.015.i.i, 16 %148 = add i64 %147, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %148, %59 - %149 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.0.i.i7 + %149 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %149, align 1, !noalias !5661 %150 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %151 = bitcast <16 x i1> %150 to i16 @@ -23046,7 +23046,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %153 = zext nneg i16 %152 to i64 %154 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %153 %155 = and i64 %154, %59 - %156 = getelementptr inbounds i8, ptr %62, i64 %155 + %156 = getelementptr inbounds nuw i8, ptr %62, i64 %155 %157 = load i8, ptr %156, align 1, !noalias !5668, !noundef !4 %158 = icmp sgt i8 %157, -1 br i1 %158, label %159, label %166 @@ -23063,7 +23063,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 166: ; preds = %159, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %165, %159 ], [ %155, %._crit_edge.i.i ] - %167 = getelementptr inbounds i8, ptr %62, i64 %.0.i.i.i6 + %167 = getelementptr inbounds nuw i8, ptr %62, i64 %.0.i.i.i6 %168 = lshr i64 %143, 57 %169 = trunc nuw nsw i64 %168 to i8 %170 = add nsw i64 %.0.i.i.i6, -16 @@ -23426,7 +23426,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5759 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5734 %.sroa.0.012.i.i = and i64 %64, %155 - %156 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %156 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %156, align 1, !noalias !5771 %157 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %158 = bitcast <16 x i1> %157 to i16 @@ -23439,7 +23439,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %159 = add i64 %.sroa.7.015.i.i, 16 %160 = add i64 %159, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %160, %64 - %161 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i7 + %161 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %161, align 1, !noalias !5771 %162 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %163 = bitcast <16 x i1> %162 to i16 @@ -23453,7 +23453,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %165 = zext nneg i16 %164 to i64 %166 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %165 %167 = and i64 %166, %64 - %168 = getelementptr inbounds i8, ptr %67, i64 %167 + %168 = getelementptr inbounds nuw i8, ptr %67, i64 %167 %169 = load i8, ptr %168, align 1, !noalias !5778, !noundef !4 %170 = icmp sgt i8 %169, -1 br i1 %170, label %171, label %178 @@ -23470,7 +23470,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 178: ; preds = %171, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %177, %171 ], [ %167, %._crit_edge.i.i ] - %179 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i6 + %179 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i6 %180 = lshr i64 %155, 57 %181 = trunc nuw nsw i64 %180 to i8 %182 = add nsw i64 %.0.i.i.i6, -16 @@ -23823,7 +23823,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5875 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5849 %.sroa.0.012.i.i = and i64 %59, %144 - %145 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.012.i.i + %145 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %145, align 1, !noalias !5887 %146 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %147 = bitcast <16 x i1> %146 to i16 @@ -23836,7 +23836,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %148 = add i64 %.sroa.7.015.i.i, 16 %149 = add i64 %148, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %149, %59 - %150 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.0.i.i8 + %150 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %150, align 1, !noalias !5887 %151 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %152 = bitcast <16 x i1> %151 to i16 @@ -23850,7 +23850,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %154 = zext nneg i16 %153 to i64 %155 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %154 %156 = and i64 %155, %59 - %157 = getelementptr inbounds i8, ptr %62, i64 %156 + %157 = getelementptr inbounds nuw i8, ptr %62, i64 %156 %158 = load i8, ptr %157, align 1, !noalias !5894, !noundef !4 %159 = icmp sgt i8 %158, -1 br i1 %159, label %160, label %167 @@ -23867,7 +23867,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 167: ; preds = %160, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %166, %160 ], [ %156, %._crit_edge.i.i ] - %168 = getelementptr inbounds i8, ptr %62, i64 %.0.i.i.i7 + %168 = getelementptr inbounds nuw i8, ptr %62, i64 %.0.i.i.i7 %169 = lshr i64 %144, 57 %170 = trunc nuw nsw i64 %169 to i8 %171 = add nsw i64 %.0.i.i.i7, -16 @@ -24227,7 +24227,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !5985 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !5960 %.sroa.0.012.i.i = and i64 %64, %152 - %153 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %153 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %153, align 1, !noalias !5997 %154 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %155 = bitcast <16 x i1> %154 to i16 @@ -24240,7 +24240,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %156 = add i64 %.sroa.7.015.i.i, 16 %157 = add i64 %156, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %157, %64 - %158 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i7 + %158 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %158, align 1, !noalias !5997 %159 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %160 = bitcast <16 x i1> %159 to i16 @@ -24254,7 +24254,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %162 = zext nneg i16 %161 to i64 %163 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %162 %164 = and i64 %163, %64 - %165 = getelementptr inbounds i8, ptr %67, i64 %164 + %165 = getelementptr inbounds nuw i8, ptr %67, i64 %164 %166 = load i8, ptr %165, align 1, !noalias !6004, !noundef !4 %167 = icmp sgt i8 %166, -1 br i1 %167, label %168, label %175 @@ -24271,7 +24271,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 175: ; preds = %168, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %174, %168 ], [ %164, %._crit_edge.i.i ] - %176 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i6 + %176 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i6 %177 = lshr i64 %152, 57 %178 = trunc nuw nsw i64 %177 to i8 %179 = add nsw i64 %.0.i.i.i6, -16 @@ -24633,7 +24633,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !6098 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !6072 %.sroa.0.012.i.i = and i64 %62, %149 - %150 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.012.i.i + %150 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %150, align 1, !noalias !6110 %151 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %152 = bitcast <16 x i1> %151 to i16 @@ -24646,7 +24646,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %153 = add i64 %.sroa.7.015.i.i, 16 %154 = add i64 %153, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %154, %62 - %155 = getelementptr inbounds i8, ptr %65, i64 %.sroa.0.0.i.i8 + %155 = getelementptr inbounds nuw i8, ptr %65, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %155, align 1, !noalias !6110 %156 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %157 = bitcast <16 x i1> %156 to i16 @@ -24660,7 +24660,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %159 = zext nneg i16 %158 to i64 %160 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %159 %161 = and i64 %160, %62 - %162 = getelementptr inbounds i8, ptr %65, i64 %161 + %162 = getelementptr inbounds nuw i8, ptr %65, i64 %161 %163 = load i8, ptr %162, align 1, !noalias !6117, !noundef !4 %164 = icmp sgt i8 %163, -1 br i1 %164, label %165, label %172 @@ -24677,7 +24677,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 172: ; preds = %165, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %171, %165 ], [ %161, %._crit_edge.i.i ] - %173 = getelementptr inbounds i8, ptr %65, i64 %.0.i.i.i7 + %173 = getelementptr inbounds nuw i8, ptr %65, i64 %.0.i.i.i7 %174 = lshr i64 %149, 57 %175 = trunc nuw nsw i64 %174 to i8 %176 = add nsw i64 %.0.i.i.i7, -16 @@ -25024,7 +25024,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !6211 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !6186 %.sroa.0.012.i.i = and i64 %59, %143 - %144 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.012.i.i + %144 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %144, align 1, !noalias !6223 %145 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %146 = bitcast <16 x i1> %145 to i16 @@ -25037,7 +25037,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %147 = add i64 %.sroa.7.015.i.i, 16 %148 = add i64 %147, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %148, %59 - %149 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.0.i.i7 + %149 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %149, align 1, !noalias !6223 %150 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %151 = bitcast <16 x i1> %150 to i16 @@ -25051,7 +25051,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %153 = zext nneg i16 %152 to i64 %154 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %153 %155 = and i64 %154, %59 - %156 = getelementptr inbounds i8, ptr %62, i64 %155 + %156 = getelementptr inbounds nuw i8, ptr %62, i64 %155 %157 = load i8, ptr %156, align 1, !noalias !6230, !noundef !4 %158 = icmp sgt i8 %157, -1 br i1 %158, label %159, label %166 @@ -25068,7 +25068,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 166: ; preds = %159, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %165, %159 ], [ %155, %._crit_edge.i.i ] - %167 = getelementptr inbounds i8, ptr %62, i64 %.0.i.i.i6 + %167 = getelementptr inbounds nuw i8, ptr %62, i64 %.0.i.i.i6 %168 = lshr i64 %143, 57 %169 = trunc nuw nsw i64 %168 to i8 %170 = add nsw i64 %.0.i.i.i6, -16 @@ -25441,7 +25441,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !6336 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %8), !noalias !6302 %.sroa.0.012.i.i = and i64 %65, %158 - %159 = getelementptr inbounds i8, ptr %68, i64 %.sroa.0.012.i.i + %159 = getelementptr inbounds nuw i8, ptr %68, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %159, align 1, !noalias !6348 %160 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %161 = bitcast <16 x i1> %160 to i16 @@ -25454,7 +25454,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %162 = add i64 %.sroa.7.015.i.i, 16 %163 = add i64 %162, %.sroa.0.016.i.i %.sroa.0.0.i.i8 = and i64 %163, %65 - %164 = getelementptr inbounds i8, ptr %68, i64 %.sroa.0.0.i.i8 + %164 = getelementptr inbounds nuw i8, ptr %68, i64 %.sroa.0.0.i.i8 %.0.copyload.i10.i.i = load <16 x i8>, ptr %164, align 1, !noalias !6348 %165 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %166 = bitcast <16 x i1> %165 to i16 @@ -25468,7 +25468,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %168 = zext nneg i16 %167 to i64 %169 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %168 %170 = and i64 %169, %65 - %171 = getelementptr inbounds i8, ptr %68, i64 %170 + %171 = getelementptr inbounds nuw i8, ptr %68, i64 %170 %172 = load i8, ptr %171, align 1, !noalias !6355, !noundef !4 %173 = icmp sgt i8 %172, -1 br i1 %173, label %174, label %181 @@ -25485,7 +25485,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 181: ; preds = %174, %._crit_edge.i.i %.0.i.i.i7 = phi i64 [ %180, %174 ], [ %170, %._crit_edge.i.i ] - %182 = getelementptr inbounds i8, ptr %68, i64 %.0.i.i.i7 + %182 = getelementptr inbounds nuw i8, ptr %68, i64 %.0.i.i.i7 %183 = lshr i64 %158, 57 %184 = trunc nuw nsw i64 %183 to i8 %185 = add nsw i64 %.0.i.i.i7, -16 @@ -25832,7 +25832,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !6446 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !6421 %.sroa.0.012.i.i = and i64 %59, %142 - %143 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.012.i.i + %143 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %143, align 1, !noalias !6458 %144 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %145 = bitcast <16 x i1> %144 to i16 @@ -25845,7 +25845,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %146 = add i64 %.sroa.7.015.i.i, 16 %147 = add i64 %146, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %147, %59 - %148 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.0.i.i7 + %148 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %148, align 1, !noalias !6458 %149 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %150 = bitcast <16 x i1> %149 to i16 @@ -25859,7 +25859,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %152 = zext nneg i16 %151 to i64 %153 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %152 %154 = and i64 %153, %59 - %155 = getelementptr inbounds i8, ptr %62, i64 %154 + %155 = getelementptr inbounds nuw i8, ptr %62, i64 %154 %156 = load i8, ptr %155, align 1, !noalias !6465, !noundef !4 %157 = icmp sgt i8 %156, -1 br i1 %157, label %158, label %165 @@ -25876,7 +25876,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 165: ; preds = %158, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %164, %158 ], [ %154, %._crit_edge.i.i ] - %166 = getelementptr inbounds i8, ptr %62, i64 %.0.i.i.i6 + %166 = getelementptr inbounds nuw i8, ptr %62, i64 %.0.i.i.i6 %167 = lshr i64 %142, 57 %168 = trunc nuw nsw i64 %167 to i8 %169 = add nsw i64 %.0.i.i.i6, -16 @@ -26236,7 +26236,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !6559 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !6534 %.sroa.0.012.i.i = and i64 %64, %153 - %154 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.012.i.i + %154 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %154, align 1, !noalias !6571 %155 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %156 = bitcast <16 x i1> %155 to i16 @@ -26249,7 +26249,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %157 = add i64 %.sroa.7.015.i.i, 16 %158 = add i64 %157, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %158, %64 - %159 = getelementptr inbounds i8, ptr %67, i64 %.sroa.0.0.i.i7 + %159 = getelementptr inbounds nuw i8, ptr %67, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %159, align 1, !noalias !6571 %160 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %161 = bitcast <16 x i1> %160 to i16 @@ -26263,7 +26263,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %163 = zext nneg i16 %162 to i64 %164 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %163 %165 = and i64 %164, %64 - %166 = getelementptr inbounds i8, ptr %67, i64 %165 + %166 = getelementptr inbounds nuw i8, ptr %67, i64 %165 %167 = load i8, ptr %166, align 1, !noalias !6578, !noundef !4 %168 = icmp sgt i8 %167, -1 br i1 %168, label %169, label %176 @@ -26280,7 +26280,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 176: ; preds = %169, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %175, %169 ], [ %165, %._crit_edge.i.i ] - %177 = getelementptr inbounds i8, ptr %67, i64 %.0.i.i.i6 + %177 = getelementptr inbounds nuw i8, ptr %67, i64 %.0.i.i.i6 %178 = lshr i64 %153, 57 %179 = trunc nuw nsw i64 %178 to i8 %180 = add nsw i64 %.0.i.i.i6, -16 @@ -26628,7 +26628,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !6669 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7), !noalias !6644 %.sroa.0.012.i.i = and i64 %59, %142 - %143 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.012.i.i + %143 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.012.i.i %.0.copyload.i1013.i.i = load <16 x i8>, ptr %143, align 1, !noalias !6681 %144 = icmp slt <16 x i8> %.0.copyload.i1013.i.i, zeroinitializer %145 = bitcast <16 x i1> %144 to i16 @@ -26641,7 +26641,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %146 = add i64 %.sroa.7.015.i.i, 16 %147 = add i64 %146, %.sroa.0.016.i.i %.sroa.0.0.i.i7 = and i64 %147, %59 - %148 = getelementptr inbounds i8, ptr %62, i64 %.sroa.0.0.i.i7 + %148 = getelementptr inbounds nuw i8, ptr %62, i64 %.sroa.0.0.i.i7 %.0.copyload.i10.i.i = load <16 x i8>, ptr %148, align 1, !noalias !6681 %149 = icmp slt <16 x i8> %.0.copyload.i10.i.i, zeroinitializer %150 = bitcast <16 x i1> %149 to i16 @@ -26655,7 +26655,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 %152 = zext nneg i16 %151 to i64 %153 = add nuw nsw i64 %.sroa.0.0.lcssa.i.i, %152 %154 = and i64 %153, %59 - %155 = getelementptr inbounds i8, ptr %62, i64 %154 + %155 = getelementptr inbounds nuw i8, ptr %62, i64 %154 %156 = load i8, ptr %155, align 1, !noalias !6688, !noundef !4 %157 = icmp sgt i8 %156, -1 br i1 %157, label %158, label %165 @@ -26672,7 +26672,7 @@ _ZN9hashbrown3raw13RawTableInner15allocation_info17h69bc70322dbad6adE.llvm.11083 165: ; preds = %158, %._crit_edge.i.i %.0.i.i.i6 = phi i64 [ %164, %158 ], [ %154, %._crit_edge.i.i ] - %166 = getelementptr inbounds i8, ptr %62, i64 %.0.i.i.i6 + %166 = getelementptr inbounds nuw i8, ptr %62, i64 %.0.i.i.i6 %167 = lshr i64 %142, 57 %168 = trunc nuw nsw i64 %167 to i8 %169 = add nsw i64 %.0.i.i.i6, -16 diff --git a/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll b/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll index 51f4ff3b57b..3183403b592 100644 --- a/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll +++ b/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll @@ -14417,10 +14417,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %.0.i = phi i64 [ %18, %17 ], [ %.3.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17he1f89394e977390fE.exit.i17.i" ] %22 = icmp ult i64 %.058.i, %.sroa.14.0149 call void @llvm.assume(i1 %22) - %23 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.058.i + %23 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %.058.i %24 = icmp ult i64 %.0.i, %.sroa.14.0149 call void @llvm.assume(i1 %24) - %25 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.0.i + %25 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %.0.i %.val.i.i.i = load ptr, ptr %23, align 8, !alias.scope !2892, !noalias !2895, !nonnull !14, !align !428, !noundef !14 %.val5.i.i.i = load ptr, ptr %25, align 8, !alias.scope !2892, !noalias !2895, !nonnull !14, !align !428, !noundef !14 %26 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i.i.i), !range !1546, !noalias !2904 @@ -14432,7 +14432,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %30 = icmp ult i64 %.062.i, %.sroa.14.0149 call void @llvm.assume(i1 %30) %31 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.062.i - %32 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.159.i + %32 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %.159.i %.val.i5.i.i = load ptr, ptr %31, align 8, !alias.scope !2892, !noalias !2905, !nonnull !14, !align !428, !noundef !14 %.val5.i6.i.i = load ptr, ptr %32, align 8, !alias.scope !2892, !noalias !2905, !nonnull !14, !align !428, !noundef !14 %33 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i5.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i6.i.i), !range !1546, !noalias !2910 @@ -14441,7 +14441,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %.2113.i = add nuw nsw i64 %.1112.i, %35 %.260.i = select i1 %34, i64 %.062.i, i64 %.159.i %36 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.260.i - %37 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %29 + %37 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %29 %.val.i8.i.i = load ptr, ptr %36, align 8, !alias.scope !2892, !noalias !2911, !nonnull !14, !align !428, !noundef !14 %.val5.i9.i.i = load ptr, ptr %37, align 8, !alias.scope !2892, !noalias !2911, !nonnull !14, !align !428, !noundef !14 %38 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i8.i.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i9.i.i), !range !1546, !noalias !2916 @@ -14458,7 +14458,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %43 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %18 %44 = icmp ult i64 %41, %.sroa.14.0149 call void @llvm.assume(i1 %44) - %45 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %41 + %45 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %41 %.val.i.i15.i = load ptr, ptr %43, align 8, !alias.scope !2892, !noalias !2917, !nonnull !14, !align !428, !noundef !14 %.val5.i.i16.i = load ptr, ptr %45, align 8, !alias.scope !2892, !noalias !2917, !nonnull !14, !align !428, !noundef !14 %46 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i.i15.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i.i16.i), !range !1546, !noalias !2926 @@ -14469,7 +14469,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %49 = icmp ult i64 %42, %.sroa.14.0149 call void @llvm.assume(i1 %49) %50 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %42 - %51 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.1.i + %51 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %.1.i %.val.i5.i18.i = load ptr, ptr %50, align 8, !alias.scope !2892, !noalias !2927, !nonnull !14, !align !428, !noundef !14 %.val5.i6.i19.i = load ptr, ptr %51, align 8, !alias.scope !2892, !noalias !2927, !nonnull !14, !align !428, !noundef !14 %52 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i5.i18.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i6.i19.i), !range !1546, !noalias !2932 @@ -14477,8 +14477,8 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %54 = zext i1 %53 to i64 %.5116.i = add nuw nsw i64 %54, %.4115.i %.2.i = select i1 %53, i64 %42, i64 %.1.i - %55 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.2.i - %56 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %48 + %55 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %.2.i + %56 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %48 %.val.i8.i21.i = load ptr, ptr %55, align 8, !alias.scope !2892, !noalias !2933, !nonnull !14, !align !428, !noundef !14 %.val5.i9.i22.i = load ptr, ptr %56, align 8, !alias.scope !2892, !noalias !2933, !nonnull !14, !align !428, !noundef !14 %57 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i8.i21.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i9.i22.i), !range !1546, !noalias !2938 @@ -14493,7 +14493,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %63 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %19 %64 = icmp ult i64 %60, %.sroa.14.0149 call void @llvm.assume(i1 %64) - %65 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %60 + %65 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %60 %.val.i.i24.i = load ptr, ptr %63, align 8, !alias.scope !2892, !noalias !2939, !nonnull !14, !align !428, !noundef !14 %.val5.i.i25.i = load ptr, ptr %65, align 8, !alias.scope !2892, !noalias !2939, !nonnull !14, !align !428, !noundef !14 %66 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i.i24.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i.i25.i), !range !1546, !noalias !2948 @@ -14505,7 +14505,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %70 = icmp ult i64 %61, %.sroa.14.0149 call void @llvm.assume(i1 %70) %71 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %61 - %72 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.4.i + %72 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %.4.i %.val.i5.i27.i = load ptr, ptr %71, align 8, !alias.scope !2892, !noalias !2949, !nonnull !14, !align !428, !noundef !14 %.val5.i6.i28.i = load ptr, ptr %72, align 8, !alias.scope !2892, !noalias !2949, !nonnull !14, !align !428, !noundef !14 %73 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i5.i27.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i6.i28.i), !range !1546, !noalias !2954 @@ -14513,8 +14513,8 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h65ed64e41901fd58E.exit: ; preds %75 = zext i1 %74 to i64 %.8.i = add nuw nsw i64 %.7.i, %75 %.5.i = select i1 %74, i64 %61, i64 %.4.i - %76 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %.5.i - %77 = getelementptr inbounds ptr, ptr %.sroa.0.0150, i64 %69 + %76 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %.5.i + %77 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0150, i64 %69 %.val.i8.i30.i = load ptr, ptr %76, align 8, !alias.scope !2892, !noalias !2955, !nonnull !14, !align !428, !noundef !14 %.val5.i9.i31.i = load ptr, ptr %77, align 8, !alias.scope !2892, !noalias !2955, !nonnull !14, !align !428, !noundef !14 %78 = call noundef i8 @"_ZN91_$LT$tree_sitter_cli..generate..build_tables..item..ParseItem$u20$as$u20$core..cmp..Ord$GT$3cmp17hcec4af5f3c382b25E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val.i8.i30.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.val5.i9.i31.i), !range !1546, !noalias !2960 @@ -17811,10 +17811,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h1f9bc432948871f1E.exit: ; preds %.0.i = phi i64 [ %24, %23 ], [ %spec.select186.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h40458daabf941b9fE.exit11.i93.i" ] %28 = icmp ult i64 %.0130.i, %.sroa.14.0108 call void @llvm.assume(i1 %28) - %29 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0130.i + %29 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0130.i %30 = icmp ult i64 %.0.i, %.sroa.14.0108 call void @llvm.assume(i1 %30) - %31 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0.i + %31 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0.i %.val.i.i.i = load ptr, ptr %29, align 8, !alias.scope !3843, !noalias !3846, !nonnull !14, !align !428, !noundef !14 %.val5.i.i.i = load ptr, ptr %31, align 8, !alias.scope !3843, !noalias !3846, !nonnull !14, !align !428, !noundef !14 %.val.i.i.i.i.i = load i64, ptr %.val.i.i.i, align 8, !noalias !3855 @@ -17882,7 +17882,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h1f9bc432948871f1E.exit: ; preds %60 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %24 %61 = icmp ult i64 %58, %.sroa.14.0108 call void @llvm.assume(i1 %61) - %62 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %58 + %62 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %58 %.val.i.i15.i = load ptr, ptr %60, align 8, !alias.scope !3843, !noalias !3868, !nonnull !14, !align !428, !noundef !14 %.val5.i.i16.i = load ptr, ptr %62, align 8, !alias.scope !3843, !noalias !3868, !nonnull !14, !align !428, !noundef !14 %.val.i.i.i.i17.i = load i64, ptr %.val.i.i15.i, align 8, !noalias !3877 @@ -17928,7 +17928,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h1f9bc432948871f1E.exit: ; preds %.2.i = phi i64 [ %59, %78 ], [ %.1.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h40458daabf941b9fE.exit.i21.i" ] %.val1.i.i.i15.i28.i = phi i8 [ %.val1.i.i.i8.i26.i, %78 ], [ %.val3.i.i.i10.i22.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h40458daabf941b9fE.exit.i21.i" ] %.val.i.i.i14.i29.i = phi i64 [ %.val.i.i.i7.i25.i, %78 ], [ %.val2.i.i.i9.i23.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h40458daabf941b9fE.exit.i21.i" ] - %80 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %70 + %80 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %70 %.val5.i13.i30.i = load ptr, ptr %80, align 8, !alias.scope !3843, !noalias !3884, !nonnull !14, !align !428, !noundef !14 %.val2.i.i.i16.i31.i = load i64, ptr %.val5.i13.i30.i, align 8, !noalias !3889 %81 = getelementptr i8, ptr %.val5.i13.i30.i, i64 8 @@ -17947,7 +17947,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h1f9bc432948871f1E.exit: ; preds %90 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %25 %91 = icmp ult i64 %87, %.sroa.14.0108 call void @llvm.assume(i1 %91) - %92 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %87 + %92 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %87 %.val.i.i48.i = load ptr, ptr %90, align 8, !alias.scope !3843, !noalias !3890, !nonnull !14, !align !428, !noundef !14 %.val5.i.i49.i = load ptr, ptr %92, align 8, !alias.scope !3843, !noalias !3890, !nonnull !14, !align !428, !noundef !14 %.val.i.i.i.i50.i = load i64, ptr %.val.i.i48.i, align 8, !noalias !3899 @@ -17994,7 +17994,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h1f9bc432948871f1E.exit: ; preds %.5.i = phi i64 [ %88, %109 ], [ %.4.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h40458daabf941b9fE.exit.i54.i" ] %.val1.i.i.i15.i61.i = phi i8 [ %.val1.i.i.i8.i59.i, %109 ], [ %.val3.i.i.i10.i55.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h40458daabf941b9fE.exit.i54.i" ] %.val.i.i.i14.i62.i = phi i64 [ %.val.i.i.i7.i58.i, %109 ], [ %.val2.i.i.i9.i56.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h40458daabf941b9fE.exit.i54.i" ] - %111 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %101 + %111 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %101 %.val5.i13.i63.i = load ptr, ptr %111, align 8, !alias.scope !3843, !noalias !3906, !nonnull !14, !align !428, !noundef !14 %.val2.i.i.i16.i64.i = load i64, ptr %.val5.i13.i63.i, align 8, !noalias !3911 %112 = getelementptr i8, ptr %.val5.i13.i63.i, i64 8 @@ -21402,10 +21402,10 @@ define hidden void @_ZN4core5slice4sort7recurse17h5f7815451da1f45cE.llvm.1467545 %.0.i = phi i64 [ %18, %17 ], [ %.3.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit10.i110.i" ], [ %.3.i, %244 ], [ %.3.i, %238 ] %22 = icmp ult i64 %.0133.i, %.sroa.14.0111 call void @llvm.assume(i1 %22) - %23 = getelementptr inbounds ptr, ptr %.sroa.0.0112, i64 %.0133.i + %23 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %.0133.i %24 = icmp ult i64 %.0.i, %.sroa.14.0111 call void @llvm.assume(i1 %24) - %25 = getelementptr inbounds ptr, ptr %.sroa.0.0112, i64 %.0.i + %25 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %.0.i %.val.i.i.i = load ptr, ptr %23, align 8, !alias.scope !4313, !noalias !4316, !nonnull !14, !align !428, !noundef !14 %.val5.i.i.i = load ptr, ptr %25, align 8, !alias.scope !4313, !noalias !4316, !nonnull !14, !align !428, !noundef !14 %26 = getelementptr inbounds nuw i8, ptr %.val.i.i.i, i64 24 @@ -21479,7 +21479,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h5f7815451da1f45cE.llvm.1467545 %61 = phi i8 [ %44, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i.i" ], [ %51, %59 ], [ %44, %53 ] %62 = phi i64 [ %45, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i.i" ], [ %49, %59 ], [ %45, %53 ] %.val.i11.i.i = phi ptr [ %.val5.i6.i.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i.i" ], [ %.val.i5.i.i, %59 ], [ %.val5.i6.i.i, %53 ] - %63 = getelementptr inbounds ptr, ptr %.sroa.0.0112, i64 %43 + %63 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %43 %.val5.i12.i.i = load ptr, ptr %63, align 8, !alias.scope !4313, !noalias !4342, !nonnull !14, !align !428, !noundef !14 %64 = getelementptr inbounds nuw i8, ptr %.val5.i12.i.i, i64 24 %65 = load i64, ptr %64, align 8, !noalias !4347, !noundef !14 @@ -21512,7 +21512,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h5f7815451da1f45cE.llvm.1467545 %79 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %18 %80 = icmp ult i64 %77, %.sroa.14.0111 call void @llvm.assume(i1 %80) - %81 = getelementptr inbounds ptr, ptr %.sroa.0.0112, i64 %77 + %81 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %77 %.val.i.i15.i = load ptr, ptr %79, align 8, !alias.scope !4313, !noalias !4353, !nonnull !14, !align !428, !noundef !14 %.val5.i.i16.i = load ptr, ptr %81, align 8, !alias.scope !4313, !noalias !4353, !nonnull !14, !align !428, !noundef !14 %82 = getelementptr inbounds nuw i8, ptr %.val.i.i15.i, i64 24 @@ -21585,7 +21585,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h5f7815451da1f45cE.llvm.1467545 %116 = phi i8 [ %99, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i28.i" ], [ %106, %114 ], [ %99, %108 ] %117 = phi i64 [ %100, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i28.i" ], [ %104, %114 ], [ %100, %108 ] %.val.i11.i43.i = phi ptr [ %.val5.i6.i29.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i28.i" ], [ %.val.i5.i30.i, %114 ], [ %.val5.i6.i29.i, %108 ] - %118 = getelementptr inbounds ptr, ptr %.sroa.0.0112, i64 %98 + %118 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %98 %.val5.i12.i44.i = load ptr, ptr %118, align 8, !alias.scope !4313, !noalias !4379, !nonnull !14, !align !428, !noundef !14 %119 = getelementptr inbounds nuw i8, ptr %.val5.i12.i44.i, i64 24 %120 = load i64, ptr %119, align 8, !noalias !4384, !noundef !14 @@ -21622,7 +21622,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h5f7815451da1f45cE.llvm.1467545 %135 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %19 %136 = icmp ult i64 %132, %.sroa.14.0111 call void @llvm.assume(i1 %136) - %137 = getelementptr inbounds ptr, ptr %.sroa.0.0112, i64 %132 + %137 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %132 %.val.i.i49.i = load ptr, ptr %135, align 8, !alias.scope !4313, !noalias !4390, !nonnull !14, !align !428, !noundef !14 %.val5.i.i50.i = load ptr, ptr %137, align 8, !alias.scope !4313, !noalias !4390, !nonnull !14, !align !428, !noundef !14 %138 = getelementptr inbounds nuw i8, ptr %.val.i.i49.i, i64 24 @@ -21696,7 +21696,7 @@ define hidden void @_ZN4core5slice4sort7recurse17h5f7815451da1f45cE.llvm.1467545 %173 = phi i8 [ %156, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i62.i" ], [ %163, %171 ], [ %156, %165 ] %174 = phi i64 [ %157, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i62.i" ], [ %161, %171 ], [ %157, %165 ] %.val.i11.i77.i = phi ptr [ %.val5.i6.i63.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h58ce401a83c230b7E.exit.i62.i" ], [ %.val.i5.i64.i, %171 ], [ %.val5.i6.i63.i, %165 ] - %175 = getelementptr inbounds ptr, ptr %.sroa.0.0112, i64 %155 + %175 = getelementptr inbounds nuw ptr, ptr %.sroa.0.0112, i64 %155 %.val5.i12.i78.i = load ptr, ptr %175, align 8, !alias.scope !4313, !noalias !4416, !nonnull !14, !align !428, !noundef !14 %176 = getelementptr inbounds nuw i8, ptr %.val5.i12.i78.i, i64 24 %177 = load i64, ptr %176, align 8, !noalias !4421, !noundef !14 @@ -23515,10 +23515,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17he75c80960dcc4c39E.exit: ; preds %.0.i = phi i64 [ %18, %17 ], [ %spec.select138.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h3976e5fac9ca8336E.exit.i51.i" ] %22 = icmp ult i64 %.082.i, %.sroa.14.099 call void @llvm.assume(i1 %22) - %23 = getelementptr inbounds i32, ptr %.sroa.0.0100, i64 %.082.i + %23 = getelementptr inbounds nuw i32, ptr %.sroa.0.0100, i64 %.082.i %24 = icmp ult i64 %.0.i, %.sroa.14.099 call void @llvm.assume(i1 %24) - %25 = getelementptr inbounds i32, ptr %.sroa.0.0100, i64 %.0.i + %25 = getelementptr inbounds nuw i32, ptr %.sroa.0.0100, i64 %.0.i %.val.i.i.i = load i32, ptr %23, align 4, !alias.scope !4713, !noalias !4718, !noundef !14 %.val5.i.i.i = load i32, ptr %25, align 4, !alias.scope !4728, !noalias !4729, !noundef !14 %26 = icmp ult i32 %.val.i.i.i, %.val5.i.i.i @@ -23556,7 +23556,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17he75c80960dcc4c39E.exit: ; preds %39 = getelementptr inbounds nuw i32, ptr %.sroa.0.0100, i64 %18 %40 = icmp ult i64 %37, %.sroa.14.099 call void @llvm.assume(i1 %40) - %41 = getelementptr inbounds i32, ptr %.sroa.0.0100, i64 %37 + %41 = getelementptr inbounds nuw i32, ptr %.sroa.0.0100, i64 %37 %.val.i.i15.i = load i32, ptr %39, align 4, !alias.scope !4739, !noalias !4742, !noundef !14 %.val5.i.i16.i = load i32, ptr %41, align 4, !alias.scope !4752, !noalias !4753, !noundef !14 %42 = icmp ult i32 %.val.i.i15.i, %.val5.i.i16.i @@ -23591,7 +23591,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17he75c80960dcc4c39E.exit: ; preds %54 = getelementptr inbounds nuw i32, ptr %.sroa.0.0100, i64 %19 %55 = icmp ult i64 %51, %.sroa.14.099 call void @llvm.assume(i1 %55) - %56 = getelementptr inbounds i32, ptr %.sroa.0.0100, i64 %51 + %56 = getelementptr inbounds nuw i32, ptr %.sroa.0.0100, i64 %51 %.val.i.i32.i = load i32, ptr %54, align 4, !alias.scope !4763, !noalias !4766, !noundef !14 %.val5.i.i33.i = load i32, ptr %56, align 4, !alias.scope !4776, !noalias !4777, !noundef !14 %57 = icmp ult i32 %.val.i.i32.i, %.val5.i.i33.i @@ -24213,10 +24213,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h4a5907ab286399bfE.exit: ; preds %.0.i = phi i64 [ %24, %23 ], [ %spec.select186.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hd93da57992135bc9E.exit11.i93.i" ] %28 = icmp ult i64 %.0130.i, %.sroa.14.0108 call void @llvm.assume(i1 %28) - %29 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0130.i + %29 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0130.i %30 = icmp ult i64 %.0.i, %.sroa.14.0108 call void @llvm.assume(i1 %30) - %31 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0.i + %31 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %.0.i %.val.i.i.i = load ptr, ptr %29, align 8, !alias.scope !4884, !noalias !4887, !nonnull !14, !align !428, !noundef !14 %.val5.i.i.i = load ptr, ptr %31, align 8, !alias.scope !4884, !noalias !4887, !nonnull !14, !align !428, !noundef !14 %.val.i.i.i.i.i = load i64, ptr %.val.i.i.i, align 8, !noalias !4896 @@ -24284,7 +24284,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h4a5907ab286399bfE.exit: ; preds %60 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %24 %61 = icmp ult i64 %58, %.sroa.14.0108 call void @llvm.assume(i1 %61) - %62 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %58 + %62 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %58 %.val.i.i15.i = load ptr, ptr %60, align 8, !alias.scope !4884, !noalias !4909, !nonnull !14, !align !428, !noundef !14 %.val5.i.i16.i = load ptr, ptr %62, align 8, !alias.scope !4884, !noalias !4909, !nonnull !14, !align !428, !noundef !14 %.val.i.i.i.i17.i = load i64, ptr %.val.i.i15.i, align 8, !noalias !4918 @@ -24330,7 +24330,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h4a5907ab286399bfE.exit: ; preds %.2.i = phi i64 [ %59, %78 ], [ %.1.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hd93da57992135bc9E.exit.i21.i" ] %.val1.i.i.i15.i28.i = phi i8 [ %.val1.i.i.i8.i26.i, %78 ], [ %.val3.i.i.i10.i22.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hd93da57992135bc9E.exit.i21.i" ] %.val.i.i.i14.i29.i = phi i64 [ %.val.i.i.i7.i25.i, %78 ], [ %.val2.i.i.i9.i23.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hd93da57992135bc9E.exit.i21.i" ] - %80 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %70 + %80 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %70 %.val5.i13.i30.i = load ptr, ptr %80, align 8, !alias.scope !4884, !noalias !4925, !nonnull !14, !align !428, !noundef !14 %.val2.i.i.i16.i31.i = load i64, ptr %.val5.i13.i30.i, align 8, !noalias !4930 %81 = getelementptr i8, ptr %.val5.i13.i30.i, i64 8 @@ -24349,7 +24349,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h4a5907ab286399bfE.exit: ; preds %90 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %25 %91 = icmp ult i64 %87, %.sroa.14.0108 call void @llvm.assume(i1 %91) - %92 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %87 + %92 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %87 %.val.i.i48.i = load ptr, ptr %90, align 8, !alias.scope !4884, !noalias !4931, !nonnull !14, !align !428, !noundef !14 %.val5.i.i49.i = load ptr, ptr %92, align 8, !alias.scope !4884, !noalias !4931, !nonnull !14, !align !428, !noundef !14 %.val.i.i.i.i50.i = load i64, ptr %.val.i.i48.i, align 8, !noalias !4940 @@ -24396,7 +24396,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h4a5907ab286399bfE.exit: ; preds %.5.i = phi i64 [ %88, %109 ], [ %.4.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hd93da57992135bc9E.exit.i54.i" ] %.val1.i.i.i15.i61.i = phi i8 [ %.val1.i.i.i8.i59.i, %109 ], [ %.val3.i.i.i10.i55.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hd93da57992135bc9E.exit.i54.i" ] %.val.i.i.i14.i62.i = phi i64 [ %.val.i.i.i7.i58.i, %109 ], [ %.val2.i.i.i9.i56.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hd93da57992135bc9E.exit.i54.i" ] - %111 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0109, i64 %101 + %111 = getelementptr inbounds nuw { ptr, ptr }, ptr %.sroa.0.0109, i64 %101 %.val5.i13.i63.i = load ptr, ptr %111, align 8, !alias.scope !4884, !noalias !4947, !nonnull !14, !align !428, !noundef !14 %.val2.i.i.i16.i64.i = load i64, ptr %.val5.i13.i63.i, align 8, !noalias !4952 %112 = getelementptr i8, ptr %.val5.i13.i63.i, i64 8 @@ -27745,10 +27745,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h76436c80d93e8c1cE.exit: ; preds %.0.i = phi i64 [ %25, %24 ], [ %spec.select168.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d130b6f22eb4429E.exit9.i78.i" ] %29 = icmp ult i64 %.0112.i, %.sroa.14.0100 call void @llvm.assume(i1 %29) - %30 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0101, i64 %.0112.i + %30 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %.0112.i %31 = icmp ult i64 %.0.i, %.sroa.14.0100 call void @llvm.assume(i1 %31) - %32 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0101, i64 %.0.i + %32 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %.0.i %.val.i.i.i = load i64, ptr %30, align 8, !alias.scope !5835, !noalias !5838 %33 = getelementptr i8, ptr %30, i64 8 %.val5.i.i.i = load i8, ptr %33, align 1, !range !494, !alias.scope !5835, !noalias !5838, !noundef !14 @@ -27812,7 +27812,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h76436c80d93e8c1cE.exit: ; preds %61 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %25 %62 = icmp ult i64 %59, %.sroa.14.0100 call void @llvm.assume(i1 %62) - %63 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0101, i64 %59 + %63 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %59 %.val.i.i15.i = load i64, ptr %61, align 8, !alias.scope !5835, !noalias !5857 %64 = getelementptr i8, ptr %61, i64 8 %.val5.i.i16.i = load i8, ptr %64, align 1, !range !494, !alias.scope !5835, !noalias !5857, !noundef !14 @@ -27855,7 +27855,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h76436c80d93e8c1cE.exit: ; preds %.2.i = phi i64 [ %60, %79 ], [ %.1.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d130b6f22eb4429E.exit.i19.i" ] %.val5.i11.i25.i = phi i8 [ %.val5.i6.i23.i, %79 ], [ %.val7.i8.i20.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d130b6f22eb4429E.exit.i19.i" ] %.val.i10.i26.i = phi i64 [ %.val.i5.i22.i, %79 ], [ %.val6.i7.i21.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d130b6f22eb4429E.exit.i19.i" ] - %81 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0101, i64 %71 + %81 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %71 %.val6.i12.i27.i = load i64, ptr %81, align 8, !alias.scope !5835, !noalias !5871 %82 = getelementptr i8, ptr %81, i64 8 %.val7.i13.i28.i = load i8, ptr %82, align 1, !range !494, !alias.scope !5835, !noalias !5871, !noundef !14 @@ -27873,7 +27873,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h76436c80d93e8c1cE.exit: ; preds %91 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %26 %92 = icmp ult i64 %88, %.sroa.14.0100 call void @llvm.assume(i1 %92) - %93 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0101, i64 %88 + %93 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %88 %.val.i.i42.i = load i64, ptr %91, align 8, !alias.scope !5835, !noalias !5876 %94 = getelementptr i8, ptr %91, i64 8 %.val5.i.i43.i = load i8, ptr %94, align 1, !range !494, !alias.scope !5835, !noalias !5876, !noundef !14 @@ -27917,7 +27917,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h76436c80d93e8c1cE.exit: ; preds %.5.i = phi i64 [ %89, %110 ], [ %.4.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d130b6f22eb4429E.exit.i46.i" ] %.val5.i11.i52.i = phi i8 [ %.val5.i6.i50.i, %110 ], [ %.val7.i8.i47.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d130b6f22eb4429E.exit.i46.i" ] %.val.i10.i53.i = phi i64 [ %.val.i5.i49.i, %110 ], [ %.val6.i7.i48.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h7d130b6f22eb4429E.exit.i46.i" ] - %112 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0101, i64 %102 + %112 = getelementptr inbounds nuw { i64, i8 }, ptr %.sroa.0.0101, i64 %102 %.val6.i12.i54.i = load i64, ptr %112, align 8, !alias.scope !5835, !noalias !5890 %113 = getelementptr i8, ptr %112, i64 8 %.val7.i13.i55.i = load i8, ptr %113, align 1, !range !494, !alias.scope !5835, !noalias !5890, !noundef !14 @@ -28621,10 +28621,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hc4eb9b0544bb1605E.exit: ; preds %.0.i = phi i64 [ %22, %21 ], [ %.3.i, %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17h9e34c52c7da2290eE.exit.i15.i" ] %26 = icmp ult i64 %.040.i, %.sroa.14.0138 call void @llvm.assume(i1 %26) - %27 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.040.i + %27 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.040.i %28 = icmp ult i64 %.0.i, %.sroa.14.0138 call void @llvm.assume(i1 %28) - %29 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.0.i + %29 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.0.i %30 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %27, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %29), !range !1546, !noalias !5965 %31 = icmp eq i8 %30, -1 %32 = zext i1 %31 to i64 @@ -28634,14 +28634,14 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hc4eb9b0544bb1605E.exit: ; preds %34 = icmp ult i64 %.044.i, %.sroa.14.0138 call void @llvm.assume(i1 %34) %35 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.044.i - %36 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.141.i + %36 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.141.i %37 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %35, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %36), !range !1546, !noalias !5974 %38 = icmp eq i8 %37, -1 %39 = zext i1 %38 to i64 %.295.i = add nuw nsw i64 %.194.i, %39 %.242.i = select i1 %38, i64 %.044.i, i64 %.141.i %40 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.242.i - %41 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %33 + %41 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %33 %42 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %40, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %41), !range !1546, !noalias !5979 %43 = icmp eq i8 %42, -1 br i1 %43, label %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hb1cf81c7df3eba18E.exit.i", label %"_ZN4core5slice4sort12choose_pivot28_$u7b$$u7b$closure$u7d$$u7d$17hb1cf81c7df3eba18E.exit.thread.i" @@ -28656,7 +28656,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hc4eb9b0544bb1605E.exit: ; preds %47 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %22 %48 = icmp ult i64 %45, %.sroa.14.0138 call void @llvm.assume(i1 %48) - %49 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %45 + %49 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %45 %50 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %47, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %49), !range !1546, !noalias !5984 %51 = icmp eq i8 %50, -1 %.497.i = zext i1 %51 to i64 @@ -28665,14 +28665,14 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hc4eb9b0544bb1605E.exit: ; preds %53 = icmp ult i64 %46, %.sroa.14.0138 call void @llvm.assume(i1 %53) %54 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %46 - %55 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.1.i + %55 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.1.i %56 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %54, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %55), !range !1546, !noalias !5993 %57 = icmp eq i8 %56, -1 %58 = zext i1 %57 to i64 %.598.i = add nuw nsw i64 %58, %.497.i %.2.i = select i1 %57, i64 %46, i64 %.1.i - %59 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.2.i - %60 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %52 + %59 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.2.i + %60 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %52 %61 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %59, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %60), !range !1546, !noalias !5998 %62 = icmp eq i8 %61, -1 %63 = zext i1 %62 to i64 @@ -28685,7 +28685,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hc4eb9b0544bb1605E.exit: ; preds %67 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %23 %68 = icmp ult i64 %64, %.sroa.14.0138 call void @llvm.assume(i1 %68) - %69 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %64 + %69 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %64 %70 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %67, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %69), !range !1546, !noalias !6003 %71 = icmp eq i8 %70, -1 %72 = zext i1 %71 to i64 @@ -28695,14 +28695,14 @@ _ZN4core5slice4sort25insertion_sort_shift_left17hc4eb9b0544bb1605E.exit: ; preds %74 = icmp ult i64 %65, %.sroa.14.0138 call void @llvm.assume(i1 %74) %75 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %65 - %76 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.4.i + %76 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.4.i %77 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %75, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %76), !range !1546, !noalias !6012 %78 = icmp eq i8 %77, -1 %79 = zext i1 %78 to i64 %.8.i = add nuw nsw i64 %.7.i, %79 %.5.i = select i1 %78, i64 %65, i64 %.4.i - %80 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.5.i - %81 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %73 + %80 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %.5.i + %81 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0139, i64 %73 %82 = call noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %80, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %81), !range !1546, !noalias !6017 %83 = icmp eq i8 %82, -1 %84 = zext i1 %83 to i64 @@ -31262,10 +31262,10 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h5c63d21459c54387E.exit: ; preds %.0.i = phi i64 [ %21, %20 ], [ %.3.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i19.i99.i" ], [ %.3.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.i15.i95.i" ] %25 = icmp ult i64 %.0127.i, %.sroa.14.0114 call void @llvm.assume(i1 %25) - %26 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %.0127.i + %26 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %.0127.i %27 = icmp ult i64 %.0.i, %.sroa.14.0114 call void @llvm.assume(i1 %27) - %28 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %.0.i + %28 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %.0.i %29 = getelementptr i8, ptr %26, i64 24 %.val.i.i.i = load i64, ptr %29, align 8, !alias.scope !6374, !noalias !6377, !noundef !14 %30 = getelementptr i8, ptr %28, i64 24 @@ -31344,7 +31344,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h5c63d21459c54387E.exit: ; preds %58 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %21 %59 = icmp ult i64 %56, %.sroa.14.0114 call void @llvm.assume(i1 %59) - %60 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %56 + %60 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %56 %61 = getelementptr i8, ptr %58, i64 24 %.val.i.i15.i = load i64, ptr %61, align 8, !alias.scope !6374, !noalias !6396, !noundef !14 %62 = getelementptr i8, ptr %60, i64 24 @@ -31396,7 +31396,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h5c63d21459c54387E.exit: ; preds %.5177.i = phi i64 [ %77, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i11.i36.i" ], [ %.4176.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.i7.i24.i" ] %.2.i = phi i64 [ %57, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i11.i36.i" ], [ %.1.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.i7.i24.i" ] %.val.i13.i29.i = phi i64 [ %.val.i5.i23.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i11.i36.i" ], [ %.val6.i6.i22.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.i7.i24.i" ] - %78 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %68 + %78 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %68 %79 = getelementptr i8, ptr %78, i64 24 %.val6.i14.i30.i = load i64, ptr %79, align 8, !alias.scope !6374, !noalias !6410, !noundef !14 %80 = icmp ult i64 %.val.i13.i29.i, %.val6.i14.i30.i @@ -31426,7 +31426,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h5c63d21459c54387E.exit: ; preds %89 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %22 %90 = icmp ult i64 %86, %.sroa.14.0114 call void @llvm.assume(i1 %90) - %91 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %86 + %91 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %86 %92 = getelementptr i8, ptr %89, i64 24 %.val.i.i47.i = load i64, ptr %92, align 8, !alias.scope !6374, !noalias !6415, !noundef !14 %93 = getelementptr i8, ptr %91, i64 24 @@ -31479,7 +31479,7 @@ _ZN4core5slice4sort25insertion_sort_shift_left17h5c63d21459c54387E.exit: ; preds %.8.i = phi i64 [ %109, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i11.i68.i" ], [ %.7.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.i7.i56.i" ] %.5.i = phi i64 [ %87, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i11.i68.i" ], [ %.4.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.i7.i56.i" ] %.val.i13.i61.i = phi i64 [ %.val.i5.i55.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i11.i68.i" ], [ %.val6.i6.i54.i, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.i7.i56.i" ] - %110 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %100 + %110 = getelementptr inbounds nuw { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0115, i64 %100 %111 = getelementptr i8, ptr %110, i64 24 %.val6.i14.i62.i = load i64, ptr %111, align 8, !alias.scope !6374, !noalias !6429, !noundef !14 %112 = icmp ult i64 %.val.i13.i61.i, %.val6.i14.i62.i diff --git a/bench/velox/optimized/ArraySort.cpp.ll b/bench/velox/optimized/ArraySort.cpp.ll index b7fc224c1a2..c7707a88b30 100644 --- a/bench/velox/optimized/ArraySort.cpp.ll +++ b/bench/velox/optimized/ArraySort.cpp.ll @@ -14089,14 +14089,14 @@ if.then: ; preds = %while.body %0 = and i64 %sub.ptr.sub169, 4 %cmp5.i.i.i.i = icmp eq i64 %0, 0 %sub12.i.i.i.i = or disjoint i64 %sub.i.i.i, 1 - %add.ptr13.i.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %sub12.i.i.i.i + %add.ptr13.i.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %sub12.i.i.i.i %add.ptr14.i.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %div9.i.i.i %vector_.i.i14.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp.sroa.0.sroa.0.0.copyload, i64 8 br label %while.body.i.i.i while.body.i.i.i: ; preds = %"_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterIZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS5_17SelectivityVectorERKNS5_11ArrayVectorERKNS5_10BaseVectorEbRNS5_4exec7EvalCtxEbENK3$_0clEiEUlRiSL_E_EEEvT_T0_SP_T1_T2_.exit.i.i.i", %if.then %__parent.0.i.i.i = phi i64 [ %div9.i.i.i, %if.then ], [ %dec.i.i.i, %"_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterIZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS5_17SelectivityVectorERKNS5_11ArrayVectorERKNS5_10BaseVectorEbRNS5_4exec7EvalCtxEbENK3$_0clEiEUlRiSL_E_EEEvT_T0_SP_T1_T2_.exit.i.i.i" ] - %add.ptr.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %__parent.0.i.i.i + %add.ptr.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %__parent.0.i.i.i %1 = load i32, ptr %add.ptr.i.i.i, align 4 %cmp23.i.i.i.i = icmp slt i64 %__parent.0.i.i.i, %div.i136138.i.i.i br i1 %cmp23.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i @@ -14105,9 +14105,9 @@ while.body.i.i.i.i: ; preds = %while.body.i.i.i, % %__secondChild.024.i.i.i.i = phi i64 [ %23, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit99.thread.i.i.i" ], [ %__parent.0.i.i.i, %while.body.i.i.i ] %add.i.i.i.i = shl i64 %__secondChild.024.i.i.i.i, 1 %mul.i.i.i.i = add i64 %add.i.i.i.i, 2 - %add.ptr.i.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %mul.i.i.i.i + %add.ptr.i.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %mul.i.i.i.i %sub1.i.i.i.i = or disjoint i64 %add.i.i.i.i, 1 - %add.ptr2.i.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %sub1.i.i.i.i + %add.ptr2.i.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %sub1.i.i.i.i %add.ptr.val.i.i.i.i = load i32, ptr %add.ptr.i.i.i.i, align 4 %add.ptr2.val.i.i.i.i = load i32, ptr %add.ptr2.i.i.i.i, align 4 %cmp.i12.i.i.i = icmp eq i32 %add.ptr.val.i.i.i.i, %add.ptr2.val.i.i.i.i @@ -14232,9 +14232,9 @@ if.then16.i73.i.i.i: ; preds = %if.end10.i60.i.i.i "_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit99.thread.i.i.i": ; preds = %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit99.thread114.i.i.i", %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit99.i.i.i", %_ZNK8facebook5velox13DecodedVector8isNullAtEi.exit40.i47.i.i.i, %if.then8.i29.i74.i.i.i, %if.then4.i32.i78.i.i.i, %while.body.i.i.i.i %23 = phi i64 [ %sub1.i.i.i.i, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit99.thread114.i.i.i" ], [ %mul.i.i.i.i, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit99.i.i.i" ], [ %mul.i.i.i.i, %while.body.i.i.i.i ], [ %mul.i.i.i.i, %if.then8.i29.i74.i.i.i ], [ %mul.i.i.i.i, %if.then4.i32.i78.i.i.i ], [ %mul.i.i.i.i, %_ZNK8facebook5velox13DecodedVector8isNullAtEi.exit40.i47.i.i.i ] - %add.ptr3.i.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %23 + %add.ptr3.i.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %23 %24 = load i32, ptr %add.ptr3.i.i.i.i, align 4 - %add.ptr4.i.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %__secondChild.024.i.i.i.i + %add.ptr4.i.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %__secondChild.024.i.i.i.i store i32 %24, ptr %add.ptr4.i.i.i.i, align 4 %cmp.i.i.i.i = icmp slt i64 %23, %div.i136138.i.i.i br i1 %cmp.i.i.i.i, label %while.body.i.i.i.i, label %while.end.i.i.i.i, !llvm.loop !123 @@ -14401,7 +14401,7 @@ if.then16.i.i.i.i: ; preds = %if.end10.i.i.i.i while.body.i.i.i.i.i: ; preds = %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit.while.body.i.i_crit_edge.i.i.i", %41 %49 = phi i32 [ %.pre.i.i.i, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit.while.body.i.i_crit_edge.i.i.i" ], [ %add.ptr.val.i.i.i.i.i, %41 ] - %add.ptr2.i.i.i.i.i = getelementptr inbounds i32, ptr %__first, i64 %__holeIndex.addr.014.i.i.i.i.i + %add.ptr2.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %__holeIndex.addr.014.i.i.i.i.i store i32 %49, ptr %add.ptr2.i.i.i.i.i, align 4 %cmp.i.i.i.i.i = icmp sgt i64 %__parent.015.i.i.i.i.i, %__parent.0.i.i.i br i1 %cmp.i.i.i.i.i, label %land.rhs.i.i.i.i.i, label %"_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterIZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS5_17SelectivityVectorERKNS5_11ArrayVectorERKNS5_10BaseVectorEbRNS5_4exec7EvalCtxEbENK3$_0clEiEUlRiSL_E_EEEvT_T0_SP_T1_T2_.exit.i.i.i", !llvm.loop !124 @@ -14432,9 +14432,9 @@ while.body.i.i25: ; preds = %while.body.i.i, %"_ %__secondChild.024.i.i = phi i64 [ %76, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit117.thread" ], [ 0, %while.body.i.i ] %add.i.i = shl i64 %__secondChild.024.i.i, 1 %mul.i.i = add i64 %add.i.i, 2 - %add.ptr.i.i = getelementptr inbounds i32, ptr %__first, i64 %mul.i.i + %add.ptr.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %mul.i.i %sub1.i.i = or disjoint i64 %add.i.i, 1 - %add.ptr2.i.i = getelementptr inbounds i32, ptr %__first, i64 %sub1.i.i + %add.ptr2.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %sub1.i.i %add.ptr.val.i.i = load i32, ptr %add.ptr.i.i, align 4 %add.ptr2.val.i.i = load i32, ptr %add.ptr2.i.i, align 4 %cmp.i30 = icmp eq i32 %add.ptr.val.i.i, %add.ptr2.val.i.i @@ -14576,9 +14576,9 @@ if.then16.i91: ; preds = %if.end10.i78 "_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit117.thread": ; preds = %_ZNK8facebook5velox13DecodedVector8isNullAtEi.exit40.i65, %if.then4.i32.i96, %if.then8.i29.i92, %while.body.i.i25, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit117", %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit117.thread136" %76 = phi i64 [ %sub1.i.i, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit117.thread136" ], [ %mul.i.i, %"_ZZZN8facebook5velox9functions12_GLOBAL__N_112sortElementsERKNS0_17SelectivityVectorERKNS0_11ArrayVectorERKNS0_10BaseVectorEbRNS0_4exec7EvalCtxEbENK3$_0clEiENKUlRiSG_E_clESG_SG_.exit117" ], [ %mul.i.i, %while.body.i.i25 ], [ %mul.i.i, %if.then8.i29.i92 ], [ %mul.i.i, %if.then4.i32.i96 ], [ %mul.i.i, %_ZNK8facebook5velox13DecodedVector8isNullAtEi.exit40.i65 ] - %add.ptr3.i.i = getelementptr inbounds i32, ptr %__first, i64 %76 + %add.ptr3.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %76 %77 = load i32, ptr %add.ptr3.i.i, align 4 - %add.ptr4.i.i = getelementptr inbounds i32, ptr %__first, i64 %__secondChild.024.i.i + %add.ptr4.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %__secondChild.024.i.i store i32 %77, ptr %add.ptr4.i.i, align 4 %cmp.i.i27 = icmp slt i64 %76, %div.i.i br i1 %cmp.i.i27, label %while.body.i.i25, label %while.end.i.i, !llvm.loop !123 @@ -14598,9 +14598,9 @@ land.lhs.true.i.i: ; preds = %while.end.i.i if.then9.i.i24: ; preds = %land.lhs.true.i.i %add10.i.i = shl nsw i64 %__secondChild.0.lcssa.i.i, 1 %sub12.i.i = or disjoint i64 %add10.i.i, 1 - %add.ptr13.i.i = getelementptr inbounds i32, ptr %__first, i64 %sub12.i.i + %add.ptr13.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %sub12.i.i %79 = load i32, ptr %add.ptr13.i.i, align 4 - %add.ptr14.i.i = getelementptr inbounds i32, ptr %__first, i64 %__secondChild.0.lcssa.i.i + %add.ptr14.i.i = getelementptr inbounds nuw i32, ptr %__first, i64 %__secondChild.0.lcssa.i.i store i32 %79, ptr %add.ptr14.i.i, align 4 br label %if.end16.i.i @@ -25126,7 +25126,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i32, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i32, ptr %__first, i64 %dec.us %7 = load i32, ptr %add.ptr10.us, align 4 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -25178,7 +25178,7 @@ _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i32, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i32, ptr %__first, i64 %dec %12 = load i32, ptr %add.ptr10, align 4 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -25680,7 +25680,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIiEEEEvT_T0_S8_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIiEEEEvT_T0_S8_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i32, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i32, ptr %__first, i64 %dec.us %7 = load i32, ptr %add.ptr10.us, align 4 %cmp23.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp23.i14.not.us, label %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIiEEEEvT_T0_S8_T1_T2_.exit54.us, label %while.body.i42.us @@ -25732,7 +25732,7 @@ _ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIiEEEEvT_T0 if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIiEEEEvT_T0_S8_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPiliN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIiEEEEvT_T0_S8_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i32, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i32, ptr %__first, i64 %dec %12 = load i32, ptr %add.ptr10, align 4 %cmp23.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp23.i14.not, label %while.end.i15, label %while.body.i42 @@ -28248,7 +28248,7 @@ if.end6.split.preheader: ; preds = %if.end6.split.lr.ph if.end6.split.us: ; preds = %if.end6.split.lr.ph, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end6.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i8, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i8, ptr %__first, i64 %dec.us %6 = load i8, ptr %add.ptr10.us, align 1 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -28300,7 +28300,7 @@ _ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end6.split: ; preds = %if.end6.split.preheader, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end6.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i8, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i8, ptr %__first, i64 %dec %11 = load i8, ptr %add.ptr10, align 1 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -28795,7 +28795,7 @@ if.end6.split.preheader: ; preds = %if.end6.split.lr.ph if.end6.split.us: ; preds = %if.end6.split.lr.ph, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIaEEEEvT_T0_S8_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIaEEEEvT_T0_S8_T1_T2_.exit54.us ], [ %div11, %if.end6.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i8, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i8, ptr %__first, i64 %dec.us %6 = load i8, ptr %add.ptr10.us, align 1 %cmp23.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp23.i14.not.us, label %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIaEEEEvT_T0_S8_T1_T2_.exit54.us, label %while.body.i42.us @@ -28847,7 +28847,7 @@ _ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIaEEEEvT_T0 if.end6.split: ; preds = %if.end6.split.preheader, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIaEEEEvT_T0_S8_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPalaN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIaEEEEvT_T0_S8_T1_T2_.exit54 ], [ %div11, %if.end6.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i8, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i8, ptr %__first, i64 %dec %11 = load i8, ptr %add.ptr10, align 1 %cmp23.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp23.i14.not, label %while.end.i15, label %while.body.i42 @@ -31372,7 +31372,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i16, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i16, ptr %__first, i64 %dec.us %7 = load i16, ptr %add.ptr10.us, align 2 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -31424,7 +31424,7 @@ _ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i16, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i16, ptr %__first, i64 %dec %12 = load i16, ptr %add.ptr10, align 2 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -31926,7 +31926,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIsEEEEvT_T0_S8_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIsEEEEvT_T0_S8_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i16, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i16, ptr %__first, i64 %dec.us %7 = load i16, ptr %add.ptr10.us, align 2 %cmp23.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp23.i14.not.us, label %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIsEEEEvT_T0_S8_T1_T2_.exit54.us, label %while.body.i42.us @@ -31978,7 +31978,7 @@ _ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIsEEEEvT_T0 if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIsEEEEvT_T0_S8_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPslsN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIsEEEEvT_T0_S8_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i16, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i16, ptr %__first, i64 %dec %12 = load i16, ptr %add.ptr10, align 2 %cmp23.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp23.i14.not, label %while.end.i15, label %while.body.i42 @@ -34503,7 +34503,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i64, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i64, ptr %__first, i64 %dec.us %7 = load i64, ptr %add.ptr10.us, align 8 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -34555,7 +34555,7 @@ _ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i64, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i64, ptr %__first, i64 %dec %12 = load i64, ptr %add.ptr10, align 8 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -35057,7 +35057,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIlEEEEvT_T0_S8_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIlEEEEvT_T0_S8_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds i64, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw i64, ptr %__first, i64 %dec.us %7 = load i64, ptr %add.ptr10.us, align 8 %cmp23.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp23.i14.not.us, label %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIlEEEEvT_T0_S8_T1_T2_.exit54.us, label %while.body.i42.us @@ -35109,7 +35109,7 @@ _ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIlEEEEvT_T0 if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIlEEEEvT_T0_S8_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPlllN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIlEEEEvT_T0_S8_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds i64, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw i64, ptr %__first, i64 %dec %12 = load i64, ptr %add.ptr10, align 8 %cmp23.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp23.i14.not, label %while.end.i15, label %while.body.i42 @@ -37821,7 +37821,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit64.us %__parent.069.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit64.us ], [ %div17, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.069.us, -1 - %add.ptr13.us = getelementptr inbounds i128, ptr %__first, i64 %dec.us + %add.ptr13.us = getelementptr inbounds nuw i128, ptr %__first, i64 %dec.us %7 = load i128, ptr %add.ptr13.us, align 16 %cmp24.i20.not.us = icmp sgt i64 %__parent.069.us, %div.i6567 br i1 %cmp24.i20.not.us, label %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit64.us, label %while.body.i52.us @@ -37873,7 +37873,7 @@ _ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit64 %__parent.069 = phi i64 [ %dec, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit64 ], [ %div17, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.069, -1 - %add.ptr13 = getelementptr inbounds i128, ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw i128, ptr %__first, i64 %dec %12 = load i128, ptr %add.ptr13, align 16 %cmp24.i20.not = icmp sgt i64 %__parent.069, %div.i6567 br i1 %cmp24.i20.not, label %while.end.i21, label %while.body.i52 @@ -38562,7 +38562,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterInEEEEvT_T0_S8_T1_T2_.exit64.us %__parent.069.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterInEEEEvT_T0_S8_T1_T2_.exit64.us ], [ %div17, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.069.us, -1 - %add.ptr13.us = getelementptr inbounds i128, ptr %__first, i64 %dec.us + %add.ptr13.us = getelementptr inbounds nuw i128, ptr %__first, i64 %dec.us %7 = load i128, ptr %add.ptr13.us, align 16 %cmp23.i20.not.us = icmp sgt i64 %__parent.069.us, %div.i6567 br i1 %cmp23.i20.not.us, label %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterInEEEEvT_T0_S8_T1_T2_.exit64.us, label %while.body.i52.us @@ -38614,7 +38614,7 @@ _ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterInEEEEvT_T0 if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterInEEEEvT_T0_S8_T1_T2_.exit64 %__parent.069 = phi i64 [ %dec, %_ZSt13__adjust_heapIPnlnN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterInEEEEvT_T0_S8_T1_T2_.exit64 ], [ %div17, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.069, -1 - %add.ptr13 = getelementptr inbounds i128, ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw i128, ptr %__first, i64 %dec %12 = load i128, ptr %add.ptr13, align 16 %cmp23.i20.not = icmp sgt i64 %__parent.069, %div.i6567 br i1 %cmp23.i20.not, label %while.end.i21, label %while.body.i52 @@ -41139,7 +41139,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds float, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw float, ptr %__first, i64 %dec.us %7 = load float, ptr %add.ptr10.us, align 4 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -41191,7 +41191,7 @@ _ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds float, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw float, ptr %__first, i64 %dec %12 = load float, ptr %add.ptr10, align 4 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -41693,7 +41693,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIfEEEEvT_T0_S8_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIfEEEEvT_T0_S8_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds float, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw float, ptr %__first, i64 %dec.us %7 = load float, ptr %add.ptr10.us, align 4 %cmp23.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp23.i14.not.us, label %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIfEEEEvT_T0_S8_T1_T2_.exit54.us, label %while.body.i42.us @@ -41745,7 +41745,7 @@ _ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIfEEEEvT_T0 if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIfEEEEvT_T0_S8_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPflfN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIfEEEEvT_T0_S8_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds float, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw float, ptr %__first, i64 %dec %12 = load float, ptr %add.ptr10, align 4 %cmp23.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp23.i14.not, label %while.end.i15, label %while.body.i42 @@ -44270,7 +44270,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds double, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw double, ptr %__first, i64 %dec.us %7 = load double, ptr %add.ptr10.us, align 8 %cmp24.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp24.i14.not.us, label %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54.us, label %while.body.i42.us @@ -44322,7 +44322,7 @@ _ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds double, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw double, ptr %__first, i64 %dec %12 = load double, ptr %add.ptr10, align 8 %cmp24.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp24.i14.not, label %while.end.i15, label %while.body.i42 @@ -44824,7 +44824,7 @@ if.end7.split.preheader: ; preds = %if.end7.split.lr.ph if.end7.split.us: ; preds = %if.end7.split.lr.ph, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIdEEEEvT_T0_S8_T1_T2_.exit54.us %__parent.059.us = phi i64 [ %dec.us, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIdEEEEvT_T0_S8_T1_T2_.exit54.us ], [ %div11, %if.end7.split.lr.ph ] %dec.us = add nsw i64 %__parent.059.us, -1 - %add.ptr10.us = getelementptr inbounds double, ptr %__first, i64 %dec.us + %add.ptr10.us = getelementptr inbounds nuw double, ptr %__first, i64 %dec.us %7 = load double, ptr %add.ptr10.us, align 8 %cmp23.i14.not.us = icmp sgt i64 %__parent.059.us, %div.i5557 br i1 %cmp23.i14.not.us, label %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIdEEEEvT_T0_S8_T1_T2_.exit54.us, label %while.body.i42.us @@ -44876,7 +44876,7 @@ _ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIdEEEEvT_T0 if.end7.split: ; preds = %if.end7.split.preheader, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIdEEEEvT_T0_S8_T1_T2_.exit54 %__parent.059 = phi i64 [ %dec, %_ZSt13__adjust_heapIPdldN9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIdEEEEvT_T0_S8_T1_T2_.exit54 ], [ %div11, %if.end7.split.preheader ] %dec = add nsw i64 %__parent.059, -1 - %add.ptr10 = getelementptr inbounds double, ptr %__first, i64 %dec + %add.ptr10 = getelementptr inbounds nuw double, ptr %__first, i64 %dec %12 = load double, ptr %add.ptr10, align 8 %cmp23.i14.not = icmp sgt i64 %__parent.059, %div.i5557 br i1 %cmp23.i14.not, label %while.end.i15, label %while.body.i42 @@ -47027,7 +47027,7 @@ if.then: ; preds = %while.body if.end8.split.i.i: ; preds = %if.then, %if.end8.split.i.i %__parent.019.i.i = phi i64 [ %dec.i.i, %if.end8.split.i.i ], [ %div17.i.i, %if.then ] %dec.i.i = add nsw i64 %__parent.019.i.i, -1 - %add.ptr13.i.i = getelementptr inbounds %"struct.facebook::velox::StringView", ptr %__first, i64 %dec.i.i + %add.ptr13.i.i = getelementptr inbounds nuw %"struct.facebook::velox::StringView", ptr %__first, i64 %dec.i.i %__value.sroa.0.0.copyload14.i.i = load i64, ptr %add.ptr13.i.i, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15.i.i = getelementptr inbounds nuw i8, ptr %add.ptr13.i.i, i64 8 %__value.sroa.2.0.copyload16.i.i = load ptr, ptr %__value.sroa.2.0.add.ptr.sroa_idx15.i.i, align 8 @@ -48076,7 +48076,7 @@ if.then: ; preds = %while.body if.end8.split.i.i: ; preds = %if.then, %if.end8.split.i.i %__parent.019.i.i = phi i64 [ %dec.i.i, %if.end8.split.i.i ], [ %div17.i.i, %if.then ] %dec.i.i = add nsw i64 %__parent.019.i.i, -1 - %add.ptr13.i.i = getelementptr inbounds %"struct.facebook::velox::StringView", ptr %__first, i64 %dec.i.i + %add.ptr13.i.i = getelementptr inbounds nuw %"struct.facebook::velox::StringView", ptr %__first, i64 %dec.i.i %__value.sroa.0.0.copyload14.i.i = load i64, ptr %add.ptr13.i.i, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15.i.i = getelementptr inbounds nuw i8, ptr %add.ptr13.i.i, i64 8 %__value.sroa.2.0.copyload16.i.i = load ptr, ptr %__value.sroa.2.0.add.ptr.sroa_idx15.i.i, align 8 @@ -53434,7 +53434,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN8facebook5velox9TimestampElS2_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S8_T1_T2_.exit74 %__parent.080 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN8facebook5velox9TimestampElS2_N9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S8_T1_T2_.exit74 ] %dec = add nsw i64 %__parent.080, -1 - %add.ptr13 = getelementptr inbounds %"struct.facebook::velox::Timestamp", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"struct.facebook::velox::Timestamp", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load i64, ptr %add.ptr13, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load i64, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 8 @@ -54243,7 +54243,7 @@ if.end8.split.lr.ph: ; preds = %_ZSt13__adjust_heap if.end8.split: ; preds = %if.end8.split.lr.ph, %_ZSt13__adjust_heapIPN8facebook5velox9TimestampElS2_N9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIS2_EEEEvT_T0_SB_T1_T2_.exit74 %__parent.080 = phi i64 [ %div17, %if.end8.split.lr.ph ], [ %dec, %_ZSt13__adjust_heapIPN8facebook5velox9TimestampElS2_N9__gnu_cxx5__ops15_Iter_comp_iterISt7greaterIS2_EEEEvT_T0_SB_T1_T2_.exit74 ] %dec = add nsw i64 %__parent.080, -1 - %add.ptr13 = getelementptr inbounds %"struct.facebook::velox::Timestamp", ptr %__first, i64 %dec + %add.ptr13 = getelementptr inbounds nuw %"struct.facebook::velox::Timestamp", ptr %__first, i64 %dec %__value.sroa.0.0.copyload14 = load i64, ptr %add.ptr13, align 8 %__value.sroa.2.0.add.ptr.sroa_idx15 = getelementptr inbounds nuw i8, ptr %add.ptr13, i64 8 %__value.sroa.2.0.copyload16 = load i64, ptr %__value.sroa.2.0.add.ptr.sroa_idx15, align 8 diff --git a/bench/yyjson/optimized/yyjson.c.ll b/bench/yyjson/optimized/yyjson.c.ll index 95fbc744793..5ffab19a51a 100644 --- a/bench/yyjson/optimized/yyjson.c.ll +++ b/bench/yyjson/optimized/yyjson.c.ll @@ -2733,7 +2733,7 @@ while.cond.i68.preheader: ; preds = %if.end23.i br i1 %cmp26.i.not151, label %if.end33, label %while.body.i71 if.then25.i: ; preds = %if.end23.i - %add.ptr.i81 = getelementptr inbounds %struct.yyjson_val, ptr %add.ptr.i30.i, i64 %idx.i.0 + %add.ptr.i81 = getelementptr inbounds nuw %struct.yyjson_val, ptr %add.ptr.i30.i, i64 %idx.i.0 br label %if.end33 while.body.i71: ; preds = %while.cond.i68.preheader, %while.body.i71 @@ -38411,7 +38411,7 @@ if.else120.i: ; preds = %f64_bin_to_dec.exit %185 = load i16, ptr %add.ptr27.i5148, align 1 store i16 %185, ptr %add.ptr.i5138.ptr, align 1 %add.ptr.i5138.add = add nsw i64 %add.ptr121.i.add, %idx.ext26.i5147.neg - %add.ptr31.i5153.ptr = getelementptr inbounds i8, ptr %add.ptr37.i, i64 %add.ptr.i5138.add + %add.ptr31.i5153.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i, i64 %add.ptr.i5138.add %add.ptr32.i5154 = getelementptr inbounds nuw i8, ptr %add.ptr31.i5153.ptr, i64 2 %mul33.i5155 = shl nsw i32 %sub14.i4702, 1 %idx.ext34.i5156 = zext i32 %mul33.i5155 to i64 @@ -38563,7 +38563,7 @@ write_u64_len_15_to_17_trim.exit5283: ; preds = %if.else138.i5161, % %idx.ext89.i5278.pn.in = phi i64 [ %sub88.i5277, %if.then68.i5253 ], [ %sub103.i5249, %if.else.i5237 ], [ %sub135.i5201, %if.then108.i5177 ], [ %sub151.i5173, %if.else138.i5161 ] %idx.ext89.i5278.pn = and i64 %idx.ext89.i5278.pn.in, 4294967295 %retval.i5089.0.idx = add nuw nsw i64 %idx.ext89.i5278.pn, %add.ptr.i5138.add - %retval.i5089.0.ptr = getelementptr inbounds i8, ptr %add.ptr37.i, i64 %retval.i5089.0.idx + %retval.i5089.0.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i, i64 %retval.i5089.0.idx %cmp124.i = icmp eq i64 %retval.i5089.0.idx, 2 %idx.ext126.i.neg = sext i1 %cmp124.i to i64 %add.ptr127.i = getelementptr inbounds i8, ptr %retval.i5089.0.ptr, i64 %idx.ext126.i.neg @@ -41706,7 +41706,7 @@ if.else120.i2240: ; preds = %f64_bin_to_dec.exit %484 = load i16, ptr %add.ptr27.i4503, align 1 store i16 %484, ptr %add.ptr.i4493.ptr, align 1 %add.ptr.i4493.add = add nsw i64 %add.ptr121.i2241.add, %idx.ext26.i4502.neg - %add.ptr31.i4508.ptr = getelementptr inbounds i8, ptr %add.ptr37.i2180, i64 %add.ptr.i4493.add + %add.ptr31.i4508.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i2180, i64 %add.ptr.i4493.add %add.ptr32.i4509 = getelementptr inbounds nuw i8, ptr %add.ptr31.i4508.ptr, i64 2 %mul33.i4510 = shl nsw i32 %sub14.i4487, 1 %idx.ext34.i4511 = zext i32 %mul33.i4510 to i64 @@ -41858,7 +41858,7 @@ write_u64_len_15_to_17_trim.exit4638: ; preds = %if.else138.i4516, % %idx.ext89.i4633.pn.in = phi i64 [ %sub88.i4632, %if.then68.i4608 ], [ %sub103.i4604, %if.else.i4592 ], [ %sub135.i4556, %if.then108.i4532 ], [ %sub151.i4528, %if.else138.i4516 ] %idx.ext89.i4633.pn = and i64 %idx.ext89.i4633.pn.in, 4294967295 %retval.i4444.0.idx = add nuw nsw i64 %idx.ext89.i4633.pn, %add.ptr.i4493.add - %retval.i4444.0.ptr = getelementptr inbounds i8, ptr %add.ptr37.i2180, i64 %retval.i4444.0.idx + %retval.i4444.0.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i2180, i64 %retval.i4444.0.idx %cmp124.i2244 = icmp eq i64 %retval.i4444.0.idx, 2 %idx.ext126.i2246.neg = sext i1 %cmp124.i2244 to i64 %add.ptr127.i2248 = getelementptr inbounds i8, ptr %retval.i4444.0.ptr, i64 %idx.ext126.i2246.neg @@ -45364,7 +45364,7 @@ if.else120.i2451: ; preds = %f64_bin_to_dec.exit %784 = load i16, ptr %add.ptr27.i3858, align 1 store i16 %784, ptr %add.ptr.i3848.ptr, align 1 %add.ptr.i3848.add = add nsw i64 %add.ptr121.i2452.add, %idx.ext26.i3857.neg - %add.ptr31.i3863.ptr = getelementptr inbounds i8, ptr %add.ptr37.i2391, i64 %add.ptr.i3848.add + %add.ptr31.i3863.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i2391, i64 %add.ptr.i3848.add %add.ptr32.i3864 = getelementptr inbounds nuw i8, ptr %add.ptr31.i3863.ptr, i64 2 %mul33.i3865 = shl nsw i32 %sub14.i3842, 1 %idx.ext34.i3866 = zext i32 %mul33.i3865 to i64 @@ -45516,7 +45516,7 @@ write_u64_len_15_to_17_trim.exit3993: ; preds = %if.else138.i3871, % %idx.ext89.i3988.pn.in = phi i64 [ %sub88.i3987, %if.then68.i3963 ], [ %sub103.i3959, %if.else.i3947 ], [ %sub135.i3911, %if.then108.i3887 ], [ %sub151.i3883, %if.else138.i3871 ] %idx.ext89.i3988.pn = and i64 %idx.ext89.i3988.pn.in, 4294967295 %retval.i3799.0.idx = add nuw nsw i64 %idx.ext89.i3988.pn, %add.ptr.i3848.add - %retval.i3799.0.ptr = getelementptr inbounds i8, ptr %add.ptr37.i2391, i64 %retval.i3799.0.idx + %retval.i3799.0.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i2391, i64 %retval.i3799.0.idx %cmp124.i2455 = icmp eq i64 %retval.i3799.0.idx, 2 %idx.ext126.i2457.neg = sext i1 %cmp124.i2455 to i64 %add.ptr127.i2459 = getelementptr inbounds i8, ptr %retval.i3799.0.ptr, i64 %idx.ext126.i2457.neg @@ -48996,7 +48996,7 @@ if.else120.i.i: ; preds = %f64_bin_to_dec.exit %185 = load i16, ptr %add.ptr27.i746.i, align 1 store i16 %185, ptr %add.ptr.i736.i.ptr, align 1 %add.ptr.i736.i.add = add nsw i64 %add.ptr121.i.i.add, %idx.ext26.i745.i.neg - %add.ptr31.i751.i.ptr = getelementptr inbounds i8, ptr %add.ptr37.i.i, i64 %add.ptr.i736.i.add + %add.ptr31.i751.i.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i.i, i64 %add.ptr.i736.i.add %add.ptr32.i752.i = getelementptr inbounds nuw i8, ptr %add.ptr31.i751.i.ptr, i64 2 %mul33.i753.i = shl nsw i32 %sub14.i.i, 1 %idx.ext34.i754.i = zext i32 %mul33.i753.i to i64 @@ -49148,7 +49148,7 @@ write_u64_len_15_to_17_trim.exit881.i: ; preds = %if.else138.i759.i, %idx.ext89.i876.i.pn.in = phi i64 [ %sub88.i875.i, %if.then68.i851.i ], [ %sub103.i847.i, %if.else.i835.i ], [ %sub135.i799.i, %if.then108.i775.i ], [ %sub151.i771.i, %if.else138.i759.i ] %idx.ext89.i876.i.pn = and i64 %idx.ext89.i876.i.pn.in, 4294967295 %retval.i687.i.0.idx = add nuw nsw i64 %idx.ext89.i876.i.pn, %add.ptr.i736.i.add - %retval.i687.i.0.ptr = getelementptr inbounds i8, ptr %add.ptr37.i.i, i64 %retval.i687.i.0.idx + %retval.i687.i.0.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i.i, i64 %retval.i687.i.0.idx %cmp124.i.i = icmp eq i64 %retval.i687.i.0.idx, 2 %idx.ext126.i.i.neg = sext i1 %cmp124.i.i to i64 %add.ptr127.i.i = getelementptr inbounds i8, ptr %retval.i687.i.0.ptr, i64 %idx.ext126.i.i.neg @@ -52301,7 +52301,7 @@ if.else120.i.i618: ; preds = %f64_bin_to_dec.exit %484 = load i16, ptr %add.ptr27.i1837.i, align 1 store i16 %484, ptr %add.ptr.i1827.i.ptr, align 1 %add.ptr.i1827.i.add = add nsw i64 %add.ptr121.i.i619.add, %idx.ext26.i1836.i.neg - %add.ptr31.i1842.i.ptr = getelementptr inbounds i8, ptr %add.ptr37.i.i409, i64 %add.ptr.i1827.i.add + %add.ptr31.i1842.i.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i.i409, i64 %add.ptr.i1827.i.add %add.ptr32.i1843.i = getelementptr inbounds nuw i8, ptr %add.ptr31.i1842.i.ptr, i64 2 %mul33.i1844.i = shl nsw i32 %sub14.i1821.i, 1 %idx.ext34.i1845.i = zext i32 %mul33.i1844.i to i64 @@ -52453,7 +52453,7 @@ write_u64_len_15_to_17_trim.exit1972.i: ; preds = %if.else138.i1850.i, %idx.ext89.i1967.i.pn.in = phi i64 [ %sub88.i1966.i, %if.then68.i1942.i ], [ %sub103.i1938.i, %if.else.i1926.i ], [ %sub135.i1890.i, %if.then108.i1866.i ], [ %sub151.i1862.i, %if.else138.i1850.i ] %idx.ext89.i1967.i.pn = and i64 %idx.ext89.i1967.i.pn.in, 4294967295 %retval.i1778.i.0.idx = add nuw nsw i64 %idx.ext89.i1967.i.pn, %add.ptr.i1827.i.add - %retval.i1778.i.0.ptr = getelementptr inbounds i8, ptr %add.ptr37.i.i409, i64 %retval.i1778.i.0.idx + %retval.i1778.i.0.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i.i409, i64 %retval.i1778.i.0.idx %cmp124.i.i621 = icmp eq i64 %retval.i1778.i.0.idx, 2 %idx.ext126.i.i623.neg = sext i1 %cmp124.i.i621 to i64 %add.ptr127.i.i624 = getelementptr inbounds i8, ptr %retval.i1778.i.0.ptr, i64 %idx.ext126.i.i623.neg @@ -55996,7 +55996,7 @@ if.else120.i.i2089: ; preds = %f64_bin_to_dec.exit %790 = load i16, ptr %add.ptr27.i1533.i, align 1 store i16 %790, ptr %add.ptr.i1523.i.ptr, align 1 %add.ptr.i1523.i.add = add nsw i64 %add.ptr121.i.i2090.add, %idx.ext26.i1532.i.neg - %add.ptr31.i1538.i.ptr = getelementptr inbounds i8, ptr %add.ptr37.i.i1879, i64 %add.ptr.i1523.i.add + %add.ptr31.i1538.i.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i.i1879, i64 %add.ptr.i1523.i.add %add.ptr32.i1539.i = getelementptr inbounds nuw i8, ptr %add.ptr31.i1538.i.ptr, i64 2 %mul33.i1540.i = shl nsw i32 %sub14.i1517.i, 1 %idx.ext34.i1541.i = zext i32 %mul33.i1540.i to i64 @@ -56148,7 +56148,7 @@ write_u64_len_15_to_17_trim.exit1668.i: ; preds = %if.else138.i1546.i, %idx.ext89.i1663.i.pn.in = phi i64 [ %sub88.i1662.i, %if.then68.i1638.i ], [ %sub103.i1634.i, %if.else.i1622.i ], [ %sub135.i1586.i, %if.then108.i1562.i ], [ %sub151.i1558.i, %if.else138.i1546.i ] %idx.ext89.i1663.i.pn = and i64 %idx.ext89.i1663.i.pn.in, 4294967295 %retval.i1474.i.0.idx = add nuw nsw i64 %idx.ext89.i1663.i.pn, %add.ptr.i1523.i.add - %retval.i1474.i.0.ptr = getelementptr inbounds i8, ptr %add.ptr37.i.i1879, i64 %retval.i1474.i.0.idx + %retval.i1474.i.0.ptr = getelementptr inbounds nuw i8, ptr %add.ptr37.i.i1879, i64 %retval.i1474.i.0.idx %cmp124.i.i2094 = icmp eq i64 %retval.i1474.i.0.idx, 2 %idx.ext126.i.i2096.neg = sext i1 %cmp124.i.i2094 to i64 %add.ptr127.i.i2097 = getelementptr inbounds i8, ptr %retval.i1474.i.0.ptr, i64 %idx.ext126.i.i2096.neg diff --git a/bench/zed-rs/optimized/0y9krt842xx0mrknznnvwo9sk.ll b/bench/zed-rs/optimized/0y9krt842xx0mrknznnvwo9sk.ll index 58a873f4160..ebc15270ce5 100644 --- a/bench/zed-rs/optimized/0y9krt842xx0mrknznnvwo9sk.ll +++ b/bench/zed-rs/optimized/0y9krt842xx0mrknznnvwo9sk.ll @@ -11621,7 +11621,7 @@ define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 %20 = getelementptr inbounds nuw i8, ptr %19, i64 24 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !551, !noundef !4 %22 = load ptr, ptr %21, align 8, !nonnull !4, !noundef !4 @@ -11653,7 +11653,7 @@ define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN8sum_tree6cu 36: ; preds = %34 %37 = getelementptr inbounds nuw i8, ptr %22, i64 7344 - %38 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %37, i64 0, i64 %28 + %38 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %37, i64 0, i64 %28 br label %25 39: ; preds = %34 @@ -11693,7 +11693,7 @@ define hidden noundef align 8 dereferenceable_or_null(200) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !551, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -11724,7 +11724,7 @@ define hidden noundef align 8 dereferenceable_or_null(200) ptr @"_ZN8sum_tree6cu 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 2064 - %37 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -11945,10 +11945,9 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h1aeaf980f920b668E.exit: ; p %.idx140 = shl nuw nsw i64 %97, 3 %117 = getelementptr inbounds nuw i8, ptr %116, i64 %.idx140 %118 = sub nuw nsw i64 %111, %97 - %119 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %115, i64 %97 - %120 = sub nsw i64 %100, %97 - %gepdiff141 = and i64 %120, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff141, i64 range(i64 0, 4294967296) %118) + %119 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %115, i64 %97 + %120 = sub nuw nsw i64 %100, %97 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %120, i64 range(i64 0, 4294967296) %118) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -11963,9 +11962,9 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h1aeaf980f920b668E.exit: ; p 122: ; preds = %.lr.ph, %138 %.sroa.9.0170 = phi i64 [ 0, %.lr.ph ], [ %123, %138 ] - %123 = add nuw nsw i64 %.sroa.9.0170, 1 - %124 = getelementptr inbounds nuw ptr, ptr %117, i64 %.sroa.9.0170 - %125 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %119, i64 %.sroa.9.0170 + %123 = add nuw i64 %.sroa.9.0170, 1 + %124 = getelementptr inbounds ptr, ptr %117, i64 %.sroa.9.0170 + %125 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %119, i64 %.sroa.9.0170 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) call void @llvm.experimental.noalias.scope.decl(metadata !2051) call void @llvm.experimental.noalias.scope.decl(metadata !2054) @@ -12084,7 +12083,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h1aeaf980f920b668E.exit: ; p %.idx138 = mul nuw nsw i64 %95, 600 %164 = getelementptr inbounds nuw i8, ptr %163, i64 %.idx138 %165 = sub nuw nsw i64 %158, %95 - %166 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %162, i64 %95 + %166 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %162, i64 %95 %.idx139 = sub nsw i64 %93, %95 %.sroa.0.0.sroa.speculated.i.i.i47 = call noundef i64 @llvm.umin.i64(i64 %.idx139, i64 range(i64 0, 4294967296) %165) %.not178 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i47, 0 @@ -12167,7 +12166,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h1aeaf980f920b668E.exit: ; p 189: ; preds = %188 %190 = zext i32 %76 to i64 %191 = add nsw i64 %190, -1 - %192 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %75, i64 0, i64 %191 + %192 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %75, i64 0, i64 %191 %193 = getelementptr inbounds nuw i8, ptr %192, i64 24 %194 = load ptr, ptr %193, align 8, !alias.scope !2127, !noalias !2130, !nonnull !4, !align !551, !noundef !4 %195 = load ptr, ptr %194, align 8, !noalias !2132, !nonnull !4, !noundef !4 @@ -12199,7 +12198,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h1aeaf980f920b668E.exit: ; p 209: ; preds = %206 %210 = getelementptr inbounds nuw i8, ptr %195, i64 7344 - %211 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %210, i64 0, i64 %200 + %211 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %210, i64 0, i64 %200 call void @"_ZN12multi_buffer91_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$usize$GT$11add_summary17he6f4f2e3c75e8caeE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(104) %211, ptr noalias noundef nonnull readonly align 1 %6) call void @"_ZN12multi_buffer137_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$core..option..Option$LT$multi_buffer..ExcerptId$GT$$GT$11add_summary17hfaddff21cf8c80feE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %85, ptr noalias noundef nonnull readonly align 8 dereferenceable(104) %211, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h271d7310e59f10f7E.llvm.15968221548756719402.exit.thread" @@ -12381,10 +12380,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx97 = shl nuw nsw i64 %79, 3 %97 = getelementptr inbounds nuw i8, ptr %96, i64 %.idx97 %98 = sub nuw nsw i64 %91, %79 - %99 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 - %100 = sub nsw i64 %82, %79 - %gepdiff98 = and i64 %100, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff98, i64 range(i64 0, 4294967296) %98) + %99 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 + %100 = sub nuw nsw i64 %82, %79 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %100, i64 range(i64 0, 4294967296) %98) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -12398,9 +12396,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 103: ; preds = %.lr.ph, %116 %.sroa.9.0123 = phi i64 [ 0, %.lr.ph ], [ %104, %116 ] - %104 = add nuw nsw i64 %.sroa.9.0123, 1 - %105 = getelementptr inbounds nuw ptr, ptr %97, i64 %.sroa.9.0123 - %106 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 + %104 = add nuw i64 %.sroa.9.0123, 1 + %105 = getelementptr inbounds ptr, ptr %97, i64 %.sroa.9.0123 + %106 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull readonly align 8 dereferenceable(16) %0, i64 16, i1 false), !alias.scope !2166 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %106, ptr noalias noundef nonnull readonly align 1 %6) @@ -12492,7 +12490,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx95 = mul nuw nsw i64 %77, 56 %136 = getelementptr inbounds nuw i8, ptr %135, i64 %.idx95 %137 = sub nuw nsw i64 %130, %77 - %138 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 + %138 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 %.idx96 = sub nsw i64 %75, %77 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx96, i64 range(i64 0, 4294967296) %137) %.not132 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -12565,7 +12563,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 158: ; preds = %157 %159 = zext i32 %65 to i64 %160 = add nsw i64 %159, -1 - %161 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 + %161 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 %162 = load ptr, ptr %161, align 8, !alias.scope !2208, !noalias !2211, !nonnull !4, !align !551, !noundef !4 %163 = load ptr, ptr %162, align 8, !noalias !2213, !nonnull !4, !noundef !4 %164 = getelementptr inbounds nuw i8, ptr %163, i64 16 @@ -12596,7 +12594,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 177: ; preds = %174 %178 = getelementptr inbounds nuw i8, ptr %163, i64 712 - %179 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 + %179 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %179, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h2f656ff95b65d61aE.exit.thread" @@ -12780,10 +12778,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx69 = shl nuw nsw i64 %77, 3 %98 = getelementptr inbounds nuw i8, ptr %97, i64 %.idx69 %99 = sub nuw nsw i64 %92, %77 - %100 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %96, i64 %77 - %101 = sub nsw i64 %80, %77 - %gepdiff70 = and i64 %101, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff70, i64 range(i64 0, 4294967296) %99) + %100 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %96, i64 %77 + %101 = sub nuw nsw i64 %80, %77 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %101, i64 range(i64 0, 4294967296) %99) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -12798,9 +12795,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 105: ; preds = %.lr.ph, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17h89f8e5dd4a783313E.exit" %.sroa.9.0104 = phi i64 [ 0, %.lr.ph ], [ %106, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17h89f8e5dd4a783313E.exit" ] - %106 = add nuw nsw i64 %.sroa.9.0104, 1 - %107 = getelementptr inbounds nuw ptr, ptr %98, i64 %.sroa.9.0104 - %108 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %100, i64 %.sroa.9.0104 + %106 = add nuw i64 %.sroa.9.0104, 1 + %107 = getelementptr inbounds ptr, ptr %98, i64 %.sroa.9.0104 + %108 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %100, i64 %.sroa.9.0104 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) %109 = load i64, ptr %0, align 8, !alias.scope !2249, !noundef !4 %110 = load i64, ptr %48, align 8, !alias.scope !2249, !noundef !4 @@ -12915,7 +12912,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx67 = mul nuw nsw i64 %75, 152 %150 = getelementptr inbounds nuw i8, ptr %149, i64 %.idx67 %151 = sub nuw nsw i64 %144, %75 - %152 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %148, i64 %75 + %152 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %148, i64 %75 %.idx68 = sub nsw i64 %73, %75 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx68, i64 range(i64 0, 4294967296) %151) %.not113 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -12994,7 +12991,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 176: ; preds = %175 %177 = zext i32 %59 to i64 %178 = add nsw i64 %177, -1 - %179 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %58, i64 0, i64 %178 + %179 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %58, i64 0, i64 %178 %180 = load ptr, ptr %179, align 8, !alias.scope !2302, !noalias !2305, !nonnull !4, !align !551, !noundef !4 %181 = load ptr, ptr %180, align 8, !noalias !2307, !nonnull !4, !noundef !4 %182 = getelementptr inbounds nuw i8, ptr %181, i64 16 @@ -13025,7 +13022,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 195: ; preds = %192 %196 = getelementptr inbounds nuw i8, ptr %181, i64 2064 - %197 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %196, i64 0, i64 %186 + %197 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %196, i64 0, i64 %186 call void @"_ZN94_$LT$text..FragmentTextSummary$u20$as$u20$sum_tree..Dimension$LT$text..FragmentSummary$GT$$GT$11add_summary17h5a941026d1b78f08E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(200) %197, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %4) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h92756289df720e00E.llvm.15968221548756719402.exit.thread" @@ -13134,7 +13131,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph35: ; preds = %.preheader, %62 %48 = phi i64 [ %63, %62 ], [ %.promoted34, %.preheader ] - %49 = getelementptr inbounds [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 + %49 = getelementptr inbounds nuw [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 tail call void @llvm.experimental.noalias.scope.decl(metadata !2319) tail call void @llvm.experimental.noalias.scope.decl(metadata !2322) tail call void @llvm.experimental.noalias.scope.decl(metadata !2325) @@ -13193,7 +13190,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph: ; preds = %.preheader27, %93 %80 = phi i64 [ %94, %93 ], [ %.promoted, %.preheader27 ] - %.sroa.06.033 = getelementptr inbounds { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 + %.sroa.06.033 = getelementptr inbounds nuw { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 tail call void @llvm.experimental.noalias.scope.decl(metadata !2332) tail call void @llvm.experimental.noalias.scope.decl(metadata !2335) tail call void @llvm.experimental.noalias.scope.decl(metadata !2338) @@ -13225,7 +13222,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 97: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h8bbc5d2bd4c21d74E.exit.thread" %98 = getelementptr inbounds nuw i8, ptr %29, i64 2224 - %99 = getelementptr inbounds ptr, ptr %98, i64 %43 + %99 = getelementptr inbounds nuw ptr, ptr %98, i64 %43 %100 = icmp ult i32 %24, 16 br i1 %100, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hd5780bad79bcb9a1E.exit15", label %101 @@ -13366,7 +13363,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 60: ; preds = %47 %61 = getelementptr inbounds nuw i8, ptr %31, i64 2064 - %62 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %61, i64 0, i64 %52 + %62 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %61, i64 0, i64 %52 %63 = add nuw nsw i64 %52, 1 store i64 %63, ptr %51, align 8 %64 = getelementptr inbounds nuw i8, ptr %29, i64 16 @@ -13380,7 +13377,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 66: ; preds = %._crit_edge63 %67 = getelementptr inbounds nuw i8, ptr %31, i64 2640 - %68 = getelementptr inbounds ptr, ptr %67, i64 %42 + %68 = getelementptr inbounds nuw ptr, ptr %67, i64 %42 %69 = load i64, ptr %0, align 8, !alias.scope !2374, !noundef !4 %70 = load i64, ptr %23, align 8, !alias.scope !2374, !noundef !4 %71 = icmp ult i32 %26, 16 @@ -13535,7 +13532,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 53: ; preds = %40 %54 = getelementptr inbounds nuw i8, ptr %27, i64 712 - %55 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 + %55 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 %56 = add nuw nsw i64 %45, 1 store i64 %56, ptr %44, align 8 %57 = getelementptr inbounds nuw i8, ptr %25, i64 16 @@ -13549,7 +13546,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 59: ; preds = %._crit_edge44 %60 = getelementptr inbounds nuw i8, ptr %27, i64 232 - %61 = getelementptr inbounds ptr, ptr %60, i64 %35 + %61 = getelementptr inbounds nuw ptr, ptr %60, i64 %35 %62 = icmp ult i32 %22, 16 br i1 %62, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h641ba9d3939bab66E.exit15", label %63 @@ -13934,7 +13931,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl3pop17h037b58814f65b296E.exit: ; preds 145: ; preds = %140 %146 = getelementptr inbounds nuw i8, ptr %132, i64 1392 - %147 = getelementptr inbounds [0 x ptr], ptr %146, i64 0, i64 %127 + %147 = getelementptr inbounds nuw [0 x ptr], ptr %146, i64 0, i64 %127 %148 = call noundef i64 @"_ZN12multi_buffer91_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$usize$GT$4zero17h03634c794a849ba1E"(ptr noalias noundef nonnull readonly align 1 %1), !noalias !2516 %149 = call { i64, i64 } @"_ZN12multi_buffer137_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$core..option..Option$LT$multi_buffer..ExcerptId$GT$$GT$4zero17he0345d0af3a2f98cE"(ptr noalias noundef nonnull readonly align 1 %1), !noalias !2516 %150 = extractvalue { i64, i64 } %149, 0 @@ -14031,7 +14028,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h10a6024455a1 %19 = zext i32 %17 to i64 %20 = getelementptr inbounds nuw i8, ptr %1, i64 40 %21 = add nsw i64 %19, -1 - %22 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %20, i64 0, i64 %21 + %22 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %20, i64 0, i64 %21 %23 = getelementptr inbounds nuw i8, ptr %22, i64 24 %24 = load ptr, ptr %23, align 8, !alias.scope !2546, !noalias !2549, !nonnull !4, !align !551, !noundef !4 %25 = load ptr, ptr %24, align 8, !noalias !2551, !nonnull !4, !noundef !4 @@ -14063,7 +14060,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h10a6024455a1 39: ; preds = %36 %40 = getelementptr inbounds nuw i8, ptr %25, i64 7344 - %41 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %40, i64 0, i64 %30 + %41 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %40, i64 0, i64 %30 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) tail call void @llvm.experimental.noalias.scope.decl(metadata !2552) tail call void @llvm.experimental.noalias.scope.decl(metadata !2555) @@ -14140,7 +14137,7 @@ define hidden { i64, i64 } @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h5259 %18 = zext i32 %16 to i64 %19 = getelementptr inbounds nuw i8, ptr %0, i64 24 %20 = add nsw i64 %18, -1 - %21 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %19, i64 0, i64 %20 + %21 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %19, i64 0, i64 %20 %22 = load ptr, ptr %21, align 8, !alias.scope !2574, !noalias !2577, !nonnull !4, !align !551, !noundef !4 %23 = load ptr, ptr %22, align 8, !noalias !2579, !nonnull !4, !noundef !4 %24 = getelementptr inbounds nuw i8, ptr %23, i64 16 @@ -14171,7 +14168,7 @@ define hidden { i64, i64 } @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h5259 37: ; preds = %34 %38 = getelementptr inbounds nuw i8, ptr %23, i64 2064 - %39 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %38, i64 0, i64 %28 + %39 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %38, i64 0, i64 %28 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) %40 = load i64, ptr %0, align 8, !alias.scope !2580, !noundef !4 %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -14364,7 +14361,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !551, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -14395,7 +14392,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 32 - %37 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -14434,7 +14431,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !551, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -14465,7 +14462,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %20, i64 192 - %37 = getelementptr inbounds [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -14505,7 +14502,7 @@ define hidden noundef align 8 dereferenceable_or_null(600) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 %20 = getelementptr inbounds nuw i8, ptr %19, i64 24 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !551, !noundef !4 %22 = load ptr, ptr %21, align 8, !nonnull !4, !noundef !4 @@ -14537,7 +14534,7 @@ define hidden noundef align 8 dereferenceable_or_null(600) ptr @"_ZN8sum_tree6cu 36: ; preds = %34 %37 = getelementptr inbounds nuw i8, ptr %22, i64 136 - %38 = getelementptr inbounds [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %37, i64 0, i64 %28 + %38 = getelementptr inbounds nuw [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %37, i64 0, i64 %28 br label %25 39: ; preds = %34 @@ -14577,7 +14574,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !551, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -14608,7 +14605,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 232 - %37 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 diff --git a/bench/zed-rs/optimized/2stbxmle5qyblpbm85idqsgvv.ll b/bench/zed-rs/optimized/2stbxmle5qyblpbm85idqsgvv.ll index db008c7b006..da01f5b4808 100644 --- a/bench/zed-rs/optimized/2stbxmle5qyblpbm85idqsgvv.ll +++ b/bench/zed-rs/optimized/2stbxmle5qyblpbm85idqsgvv.ll @@ -2196,10 +2196,9 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit.i.i: %.idx85.i.i = shl nuw nsw i64 %109, 3 %127 = getelementptr inbounds nuw i8, ptr %126, i64 %.idx85.i.i %128 = sub nuw nsw i64 %120, %109 - %129 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %125, i64 %109 - %130 = sub nsw i64 %112, %109 - %gepdiff86.i.i = and i64 %130, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff86.i.i, i64 range(i64 0, 4294967296) %128) + %129 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %125, i64 %109 + %130 = sub nuw nsw i64 %112, %109 + %.sroa.0.0.sroa.speculated.i.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %130, i64 range(i64 0, 4294967296) %128) %.not.i2.i = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i.i.i, 0 br i1 %.not.i2.i, label %.loopexit.i.i, label %.lr.ph.i.i @@ -2212,7 +2211,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit.i.i: .noexc23: ; preds = %139, %.lr.ph.i.i %131 = phi i64 [ %.pre.i, %.lr.ph.i.i ], [ %143, %139 ] %.sroa.9.0115.i.i = phi i64 [ 0, %.lr.ph.i.i ], [ %140, %139 ] - %132 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %129, i64 %.sroa.9.0115.i.i + %132 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %129, i64 %.sroa.9.0115.i.i call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16), !noalias !627 call void @llvm.experimental.noalias.scope.decl(metadata !670) call void @llvm.experimental.noalias.scope.decl(metadata !671) @@ -2246,7 +2245,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit.i.i: br i1 %.not33.i.i, label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_internal17hac9d85c957113cc6E.exit.i", label %93 139: ; preds = %.noexc23 - %140 = add nuw nsw i64 %.sroa.9.0115.i.i, 1 + %140 = add nuw i64 %.sroa.9.0115.i.i, 1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(688) %21, ptr noundef nonnull align 8 dereferenceable(24) %16, i64 24, i1 false), !noalias !620 %141 = load i64, ptr %100, align 8, !alias.scope !626, !noalias !620, !noundef !4 %142 = add i64 %141, 1 @@ -2264,7 +2263,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit.i.i: br i1 %exitcond.not.i.i, label %.loopexit.i.i, label %.noexc23 144: ; preds = %.noexc23 - %145 = getelementptr inbounds nuw ptr, ptr %127, i64 %.sroa.9.0115.i.i + %145 = getelementptr inbounds ptr, ptr %127, i64 %.sroa.9.0115.i.i %146 = load i64, ptr %21, align 8, !alias.scope !692, !noalias !697, !noundef !4 %.val.i53.i.i = load i64, ptr %.sroa.4.0..sroa_idx.i, align 8, !range !222, !alias.scope !699, !noalias !697, !noundef !4 %.val1.i54.i.i = load i64, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !699, !noalias !697 @@ -2306,7 +2305,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit.i.i: 158: ; preds = %153 %159 = getelementptr inbounds nuw i8, ptr %96, i64 7344 %160 = sub nuw nsw i64 %156, %107 - %161 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %159, i64 %107 + %161 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %159, i64 %107 %reass.add.i.i = sub nsw i64 %105, %107 %.sroa.0.0.sroa.speculated.i.i.i58.i.i = call noundef i64 @llvm.umin.i64(i64 %reass.add.i.i, i64 range(i64 0, 4294967296) %160) %.not123.i.i = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i58.i.i, 0 @@ -2388,7 +2387,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit.i.i: %184 = zext i32 %182 to i64 %185 = getelementptr inbounds nuw i8, ptr %21, i64 40 %186 = add nsw i64 %184, -1 - %187 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %185, i64 0, i64 %186 + %187 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %185, i64 0, i64 %186 %188 = getelementptr inbounds nuw i8, ptr %187, i64 24 %189 = load ptr, ptr %188, align 8, !alias.scope !744, !noalias !747, !nonnull !4, !align !83, !noundef !4 %190 = load ptr, ptr %189, align 8, !noalias !749, !nonnull !4, !noundef !4 @@ -2448,7 +2447,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit.i.i: %216 = zext i32 %214 to i64 %217 = getelementptr inbounds nuw i8, ptr %21, i64 40 %218 = add nsw i64 %216, -1 - %219 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %217, i64 0, i64 %218 + %219 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %217, i64 0, i64 %218 %220 = getelementptr inbounds nuw i8, ptr %219, i64 24 %221 = load ptr, ptr %220, align 8, !alias.scope !750, !noalias !753, !nonnull !4, !align !83, !noundef !4 %222 = load ptr, ptr %221, align 8, !noalias !755, !nonnull !4, !noundef !4 @@ -2779,7 +2778,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl3pop17h5d492e2189b70db8E.exit.i: ; pred .noexc67: ; preds = %341 %346 = getelementptr inbounds nuw i8, ptr %334, i64 1392 - %347 = getelementptr inbounds [0 x ptr], ptr %346, i64 0, i64 %331 + %347 = getelementptr inbounds nuw [0 x ptr], ptr %346, i64 0, i64 %331 %348 = call noundef i64 @"_ZN12multi_buffer91_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$usize$GT$4zero17h03634c794a849ba1E"(ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr)) %349 = call { i64, i64 } @"_ZN12multi_buffer137_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$core..option..Option$LT$multi_buffer..ExcerptId$GT$$GT$4zero17he0345d0af3a2f98cE"(ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr)) %350 = extractvalue { i64, i64 } %349, 0 @@ -2825,7 +2824,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit55.i: 363: ; preds = %232 %364 = getelementptr inbounds nuw i8, ptr %222, i64 136 - %365 = getelementptr inbounds [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %364, i64 0, i64 %227 + %365 = getelementptr inbounds nuw [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %364, i64 0, i64 %227 %366 = load i64, ptr %21, align 8, !noundef !4 %367 = load i64, ptr %23, align 8, !noundef !4 %368 = call i64 @llvm.usub.sat.i64(i64 %367, i64 %366) @@ -2881,7 +2880,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17heedaacfa7fb261d5E.exit55.i: .noexc80: ; preds = %392 %394 = getelementptr inbounds nuw i8, ptr %222, i64 7344 - %395 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %394, i64 0, i64 %227 + %395 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %394, i64 0, i64 %227 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !865 call void @llvm.experimental.noalias.scope.decl(metadata !866) call void @llvm.experimental.noalias.scope.decl(metadata !869) @@ -5588,7 +5587,7 @@ define internal fastcc void @_ZN4core5slice4sort6stable9quicksort9quicksort17h60 16: ; preds = %13 %17 = add nsw i32 %.sroa.019.075, -1 %18 = lshr i64 %.sroa.12.076, 3 - %.idx.i = shl nsw i64 %18, 7 + %.idx.i = shl nuw nsw i64 %18, 7 %19 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.ph83, i64 %.idx.i %.idx1.i = mul i64 %18, 224 %20 = getelementptr inbounds i8, ptr %.sroa.0.0.ph83, i64 %.idx1.i @@ -6976,10 +6975,9 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 %.idx68.i = shl nuw nsw i64 %380, 3 %399 = getelementptr inbounds nuw i8, ptr %398, i64 %.idx68.i %400 = sub nuw nsw i64 %392, %380 - %401 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %397, i64 %380 - %402 = sub nsw i64 %383, %380 - %gepdiff69.i = and i64 %402, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff69.i, i64 range(i64 0, 4294967296) %400) + %401 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %397, i64 %380 + %402 = sub nuw nsw i64 %383, %380 + %.sroa.0.0.sroa.speculated.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %402, i64 range(i64 0, 4294967296) %400) %.not.i296 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i.i, 0 br i1 %.not.i296, label %.loopexit.i, label %.lr.ph.i297 @@ -6992,9 +6990,9 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 405: ; preds = %.noexc311, %.lr.ph.i297 %.val45.i = phi i64 [ %.val45.i.pre, %.lr.ph.i297 ], [ %.val41.i, %.noexc311 ] %.sroa.9.0101.i = phi i64 [ 0, %.lr.ph.i297 ], [ %406, %.noexc311 ] - %406 = add nuw nsw i64 %.sroa.9.0101.i, 1 - %407 = getelementptr inbounds nuw ptr, ptr %399, i64 %.sroa.9.0101.i - %408 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %401, i64 %.sroa.9.0101.i + %406 = add nuw i64 %.sroa.9.0101.i, 1 + %407 = getelementptr inbounds ptr, ptr %399, i64 %.sroa.9.0101.i + %408 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %401, i64 %.sroa.9.0101.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12), !noalias !1563 %.val46.i = load i64, ptr %167, align 8, !alias.scope !1558, !noalias !1561, !noundef !4 store i64 %.val45.i, ptr %12, align 8, !noalias !1563 @@ -7098,7 +7096,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 %.idx66.i = mul nuw nsw i64 %378, 152 %439 = getelementptr inbounds nuw i8, ptr %438, i64 %.idx66.i %440 = sub nuw nsw i64 %434, %378 - %441 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %437, i64 %378 + %441 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %437, i64 %378 %.idx67.i = sub nsw i64 %376, %378 %.sroa.0.0.sroa.speculated.i.i.i52.i = call noundef i64 @llvm.umin.i64(i64 %.idx67.i, i64 range(i64 0, 4294967296) %440) %.not110.i = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i52.i, 0 @@ -7289,7 +7287,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 489: ; preds = %487 %490 = zext i32 %488 to i64 %491 = add nsw i64 %490, -1 - %492 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %491 + %492 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %491 %493 = load ptr, ptr %492, align 8, !alias.scope !1675, !noalias !1678, !nonnull !4, !align !83, !noundef !4 %494 = load ptr, ptr %493, align 8, !noalias !1680, !nonnull !4, !noundef !4 %495 = getelementptr inbounds nuw i8, ptr %494, i64 16 @@ -7334,7 +7332,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 510: ; preds = %505 %511 = getelementptr inbounds nuw i8, ptr %494, i64 232 - %512 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %511, i64 0, i64 %499 + %512 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %511, i64 0, i64 %499 invoke void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E.llvm.16540263568286160379"(ptr noalias nocapture noundef nonnull sret([152 x i8]) align 8 dereferenceable(152) %61, ptr noalias noundef nonnull readonly align 8 dereferenceable(152) %512) to label %513 unwind label %223 @@ -7899,7 +7897,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 691: ; preds = %689 %692 = zext i32 %690 to i64 %693 = add nsw i64 %692, -1 - %694 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %693 + %694 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %693 %695 = load ptr, ptr %694, align 8, !alias.scope !1903, !noalias !1906, !nonnull !4, !align !83, !noundef !4 %696 = load ptr, ptr %695, align 8, !noalias !1908, !nonnull !4, !noundef !4 %697 = getelementptr inbounds nuw i8, ptr %696, i64 16 @@ -7952,7 +7950,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 714: ; preds = %707 %715 = getelementptr inbounds nuw i8, ptr %696, i64 232 - %716 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %715, i64 0, i64 %701 + %716 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %715, i64 0, i64 %701 invoke void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E.llvm.16540263568286160379"(ptr noalias nocapture noundef nonnull sret([152 x i8]) align 8 dereferenceable(152) %80, ptr noalias noundef nonnull readonly align 8 dereferenceable(152) %716) to label %717 unwind label %.critedge145.thread542.loopexit.split-lp.loopexit @@ -8065,7 +8063,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 755: ; preds = %753 %756 = zext i32 %754 to i64 %757 = add nsw i64 %756, -1 - %758 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %757 + %758 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %757 %759 = load ptr, ptr %758, align 8, !alias.scope !1914, !noalias !1917, !nonnull !4, !align !83, !noundef !4 %760 = load ptr, ptr %759, align 8, !noalias !1919, !nonnull !4, !noundef !4 %761 = getelementptr inbounds nuw i8, ptr %760, i64 16 @@ -8093,7 +8091,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 774: ; preds = %770 %775 = getelementptr inbounds nuw i8, ptr %760, i64 232 - %776 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %775, i64 0, i64 %765 + %776 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %775, i64 0, i64 %765 invoke void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E.llvm.16540263568286160379"(ptr noalias nocapture noundef nonnull sret([152 x i8]) align 8 dereferenceable(152) %76, ptr noalias noundef nonnull readonly align 8 dereferenceable(152) %776) to label %777 unwind label %.critedge145.thread542.loopexit.split-lp.loopexit @@ -8251,7 +8249,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 827: ; preds = %825 %828 = zext i32 %826 to i64 %829 = add nsw i64 %828, -1 - %830 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %829 + %830 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %829 %831 = load ptr, ptr %830, align 8, !alias.scope !1945, !noalias !1948, !nonnull !4, !align !83, !noundef !4 %832 = load ptr, ptr %831, align 8, !noalias !1950, !nonnull !4, !noundef !4 %833 = getelementptr inbounds nuw i8, ptr %832, i64 16 @@ -8274,7 +8272,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 844: ; preds = %842 %845 = getelementptr inbounds nuw i8, ptr %832, i64 232 - %846 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %845, i64 0, i64 %837 + %846 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %845, i64 0, i64 %837 br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$4item17h6c010a7b797584bcE.exit214" 847: ; preds = %772, %916 @@ -8548,7 +8546,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 930: ; preds = %928 %931 = zext i32 %929 to i64 %932 = add nsw i64 %931, -1 - %933 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %932 + %933 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %232, i64 0, i64 %932 %934 = load ptr, ptr %933, align 8, !alias.scope !2005, !noalias !2008, !nonnull !4, !align !83, !noundef !4 %935 = load ptr, ptr %934, align 8, !noalias !2010, !nonnull !4, !noundef !4 %936 = getelementptr inbounds nuw i8, ptr %935, i64 16 @@ -8601,7 +8599,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 962: ; preds = %945 %963 = getelementptr inbounds nuw i8, ptr %935, i64 232 - %964 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %963, i64 0, i64 %940 + %964 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %963, i64 0, i64 %940 call void @llvm.experimental.noalias.scope.decl(metadata !2014) %965 = getelementptr inbounds nuw i8, ptr %935, i64 2056 %966 = load i32, ptr %965, align 8, !noalias !2017, !noundef !4 @@ -8615,7 +8613,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 971: ; preds = %969 %972 = getelementptr inbounds nuw i8, ptr %935, i64 2064 - %973 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %972, i64 0, i64 %940 + %973 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %972, i64 0, i64 %940 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27), !noalias !2022 %.val5.i = load i64, ptr %84, align 8, !alias.scope !2014, !noalias !2023, !noundef !4 %.val6.i = load i64, ptr %167, align 8, !alias.scope !2014, !noalias !2023, !noundef !4 @@ -9080,7 +9078,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 1129: ; preds = %1117 %1130 = getelementptr inbounds nuw i8, ptr %1103, i64 2064 - %1131 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %1130, i64 0, i64 %1122 + %1131 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %1130, i64 0, i64 %1122 %1132 = add nuw nsw i64 %1122, 1 store i64 %1132, ptr %1121, align 8, !alias.scope !2095, !noalias !2098 %1133 = getelementptr inbounds nuw i8, ptr %1101, i64 16 @@ -9100,7 +9098,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h86a6545bb9aa851dE.llvm.1 1135: ; preds = %._crit_edge43.i %1136 = getelementptr inbounds nuw i8, ptr %1103, i64 2640 - %1137 = getelementptr inbounds ptr, ptr %1136, i64 %1112 + %1137 = getelementptr inbounds nuw ptr, ptr %1136, i64 %1112 %.val17.i = load i64, ptr %84, align 8, !alias.scope !2095, !noalias !2098, !noundef !4 %.val18.i = load i64, ptr %167, align 8, !alias.scope !2095, !noalias !2098, !noundef !4 %1138 = icmp ult i32 %1098, 16 @@ -19229,10 +19227,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx68 = shl nuw nsw i64 %62, 3 %81 = getelementptr inbounds nuw i8, ptr %80, i64 %.idx68 %82 = sub nuw nsw i64 %75, %62 - %83 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %79, i64 %62 - %84 = sub nsw i64 %65, %62 - %gepdiff69 = and i64 %84, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff69, i64 range(i64 0, 4294967296) %82) + %83 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %79, i64 %62 + %84 = sub nuw nsw i64 %65, %62 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %84, i64 range(i64 0, 4294967296) %82) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -19247,9 +19244,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 88: ; preds = %.lr.ph, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17hccd55b9668701678E.exit" %.sroa.9.0101 = phi i64 [ 0, %.lr.ph ], [ %89, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17hccd55b9668701678E.exit" ] - %89 = add nuw nsw i64 %.sroa.9.0101, 1 - %90 = getelementptr inbounds nuw ptr, ptr %81, i64 %.sroa.9.0101 - %91 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %83, i64 %.sroa.9.0101 + %89 = add nuw i64 %.sroa.9.0101, 1 + %90 = getelementptr inbounds ptr, ptr %81, i64 %.sroa.9.0101 + %91 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %83, i64 %.sroa.9.0101 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) %.val45 = load i64, ptr %0, align 8, !noundef !4 %.val46 = load i64, ptr %39, align 8, !noundef !4 @@ -19356,7 +19353,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx66 = mul nuw nsw i64 %60, 152 %123 = getelementptr inbounds nuw i8, ptr %122, i64 %.idx66 %124 = sub nuw nsw i64 %117, %60 - %125 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %121, i64 %60 + %125 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %121, i64 %60 %.idx67 = sub nsw i64 %58, %60 %.sroa.0.0.sroa.speculated.i.i.i52 = call noundef i64 @llvm.umin.i64(i64 %.idx67, i64 range(i64 0, 4294967296) %124) %.not110 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i52, 0 @@ -19577,10 +19574,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx97 = shl nuw nsw i64 %79, 3 %97 = getelementptr inbounds nuw i8, ptr %96, i64 %.idx97 %98 = sub nuw nsw i64 %91, %79 - %99 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 - %100 = sub nsw i64 %82, %79 - %gepdiff98 = and i64 %100, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff98, i64 range(i64 0, 4294967296) %98) + %99 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 + %100 = sub nuw nsw i64 %82, %79 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %100, i64 range(i64 0, 4294967296) %98) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -19594,9 +19590,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 103: ; preds = %.lr.ph, %116 %.sroa.9.0123 = phi i64 [ 0, %.lr.ph ], [ %104, %116 ] - %104 = add nuw nsw i64 %.sroa.9.0123, 1 - %105 = getelementptr inbounds nuw ptr, ptr %97, i64 %.sroa.9.0123 - %106 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 + %104 = add nuw i64 %.sroa.9.0123, 1 + %105 = getelementptr inbounds ptr, ptr %97, i64 %.sroa.9.0123 + %106 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull readonly align 8 dereferenceable(16) %0, i64 16, i1 false), !alias.scope !5497 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %106, ptr noalias noundef nonnull readonly align 1 %6) @@ -19688,7 +19684,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx95 = mul nuw nsw i64 %77, 56 %136 = getelementptr inbounds nuw i8, ptr %135, i64 %.idx95 %137 = sub nuw nsw i64 %130, %77 - %138 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 + %138 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 %.idx96 = sub nsw i64 %75, %77 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx96, i64 range(i64 0, 4294967296) %137) %.not132 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -19761,7 +19757,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 158: ; preds = %157 %159 = zext i32 %65 to i64 %160 = add nsw i64 %159, -1 - %161 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 + %161 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 %162 = load ptr, ptr %161, align 8, !alias.scope !5539, !noalias !5542, !nonnull !4, !align !83, !noundef !4 %163 = load ptr, ptr %162, align 8, !noalias !5544, !nonnull !4, !noundef !4 %164 = getelementptr inbounds nuw i8, ptr %163, i64 16 @@ -19792,7 +19788,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 177: ; preds = %174 %178 = getelementptr inbounds nuw i8, ptr %163, i64 712 - %179 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 + %179 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %179, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h211a2e7178d1298bE.exit.thread" @@ -19910,7 +19906,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 53: ; preds = %40 %54 = getelementptr inbounds nuw i8, ptr %27, i64 712 - %55 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 + %55 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 %56 = add nuw nsw i64 %45, 1 store i64 %56, ptr %44, align 8 %57 = getelementptr inbounds nuw i8, ptr %25, i64 16 @@ -19924,7 +19920,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 59: ; preds = %._crit_edge44 %60 = getelementptr inbounds nuw i8, ptr %27, i64 232 - %61 = getelementptr inbounds ptr, ptr %60, i64 %35 + %61 = getelementptr inbounds nuw ptr, ptr %60, i64 %35 %62 = icmp ult i32 %22, 16 br i1 %62, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hcf0614e150f1936aE.exit15", label %63 @@ -20079,7 +20075,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_f 57: ; preds = %44 %58 = getelementptr inbounds nuw i8, ptr %30, i64 2064 - %59 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %58, i64 0, i64 %49 + %59 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %58, i64 0, i64 %49 %60 = add nuw nsw i64 %49, 1 store i64 %60, ptr %48, align 8 %61 = getelementptr inbounds nuw i8, ptr %28, i64 16 @@ -20093,7 +20089,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_f 63: ; preds = %._crit_edge43 %64 = getelementptr inbounds nuw i8, ptr %30, i64 2640 - %65 = getelementptr inbounds ptr, ptr %64, i64 %39 + %65 = getelementptr inbounds nuw ptr, ptr %64, i64 %39 %.val17 = load i64, ptr %0, align 8, !noundef !4 %.val18 = load i64, ptr %22, align 8, !noundef !4 %66 = icmp ult i32 %25, 16 @@ -20240,7 +20236,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph35: ; preds = %.preheader, %62 %48 = phi i64 [ %63, %62 ], [ %.promoted34, %.preheader ] - %49 = getelementptr inbounds [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 + %49 = getelementptr inbounds nuw [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 tail call void @llvm.experimental.noalias.scope.decl(metadata !5622) tail call void @llvm.experimental.noalias.scope.decl(metadata !5625) tail call void @llvm.experimental.noalias.scope.decl(metadata !5628) @@ -20299,7 +20295,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph: ; preds = %.preheader27, %93 %80 = phi i64 [ %94, %93 ], [ %.promoted, %.preheader27 ] - %.sroa.06.033 = getelementptr inbounds { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 + %.sroa.06.033 = getelementptr inbounds nuw { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 tail call void @llvm.experimental.noalias.scope.decl(metadata !5635) tail call void @llvm.experimental.noalias.scope.decl(metadata !5638) tail call void @llvm.experimental.noalias.scope.decl(metadata !5641) @@ -20331,7 +20327,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 97: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h056c525d9a71c478E.exit.thread" %98 = getelementptr inbounds nuw i8, ptr %29, i64 2224 - %99 = getelementptr inbounds ptr, ptr %98, i64 %43 + %99 = getelementptr inbounds nuw ptr, ptr %98, i64 %43 %100 = icmp ult i32 %24, 16 br i1 %100, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h3678053e2896d74eE.exit15", label %101 @@ -20393,7 +20389,7 @@ define internal fastcc i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hb497 %17 = zext i32 %15 to i64 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 %19 = add nsw i64 %17, -1 - %20 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %18, i64 0, i64 %19 + %20 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %18, i64 0, i64 %19 %21 = load ptr, ptr %20, align 8, !alias.scope !5660, !noalias !5663, !nonnull !4, !align !83, !noundef !4 %22 = load ptr, ptr %21, align 8, !noalias !5665, !nonnull !4, !noundef !4 %23 = getelementptr inbounds nuw i8, ptr %22, i64 16 @@ -20424,7 +20420,7 @@ define internal fastcc i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hb497 36: ; preds = %33 %37 = getelementptr inbounds nuw i8, ptr %22, i64 2064 - %38 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %37, i64 0, i64 %27 + %38 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %37, i64 0, i64 %27 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %.val5 = load i64, ptr %0, align 8, !noundef !4 %39 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -20539,7 +20535,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !83, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -20570,7 +20566,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 32 - %37 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -20609,7 +20605,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !83, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -20640,7 +20636,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %20, i64 192 - %37 = getelementptr inbounds [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 diff --git a/bench/zed-rs/optimized/5t11v1wc3a9lo225k1xr00pdg.ll b/bench/zed-rs/optimized/5t11v1wc3a9lo225k1xr00pdg.ll index 1ab7f51c917..9dedd1eee5d 100644 --- a/bench/zed-rs/optimized/5t11v1wc3a9lo225k1xr00pdg.ll +++ b/bench/zed-rs/optimized/5t11v1wc3a9lo225k1xr00pdg.ll @@ -11645,7 +11645,7 @@ define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 %20 = getelementptr inbounds nuw i8, ptr %19, i64 24 %21 = load ptr, ptr %20, align 8, !nonnull !5, !align !434, !noundef !5 %22 = load ptr, ptr %21, align 8, !nonnull !5, !noundef !5 @@ -11677,7 +11677,7 @@ define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN8sum_tree6cu 36: ; preds = %34 %37 = getelementptr inbounds nuw i8, ptr %22, i64 7344 - %38 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %37, i64 0, i64 %28 + %38 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %37, i64 0, i64 %28 br label %25 39: ; preds = %34 @@ -11898,10 +11898,9 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17hae91c98c4eae693aE.exit: ; p %.idx140 = shl nuw nsw i64 %97, 3 %117 = getelementptr inbounds nuw i8, ptr %116, i64 %.idx140 %118 = sub nuw nsw i64 %111, %97 - %119 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %115, i64 %97 - %120 = sub nsw i64 %100, %97 - %gepdiff141 = and i64 %120, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff141, i64 range(i64 0, 4294967296) %118) + %119 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %115, i64 %97 + %120 = sub nuw nsw i64 %100, %97 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %120, i64 range(i64 0, 4294967296) %118) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -11916,9 +11915,9 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17hae91c98c4eae693aE.exit: ; p 122: ; preds = %.lr.ph, %138 %.sroa.9.0170 = phi i64 [ 0, %.lr.ph ], [ %123, %138 ] - %123 = add nuw nsw i64 %.sroa.9.0170, 1 - %124 = getelementptr inbounds nuw ptr, ptr %117, i64 %.sroa.9.0170 - %125 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %119, i64 %.sroa.9.0170 + %123 = add nuw i64 %.sroa.9.0170, 1 + %124 = getelementptr inbounds ptr, ptr %117, i64 %.sroa.9.0170 + %125 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %119, i64 %.sroa.9.0170 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) call void @llvm.experimental.noalias.scope.decl(metadata !2318) call void @llvm.experimental.noalias.scope.decl(metadata !2321) @@ -12037,7 +12036,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17hae91c98c4eae693aE.exit: ; p %.idx138 = mul nuw nsw i64 %95, 600 %164 = getelementptr inbounds nuw i8, ptr %163, i64 %.idx138 %165 = sub nuw nsw i64 %158, %95 - %166 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %162, i64 %95 + %166 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %162, i64 %95 %.idx139 = sub nsw i64 %93, %95 %.sroa.0.0.sroa.speculated.i.i.i47 = call noundef i64 @llvm.umin.i64(i64 %.idx139, i64 range(i64 0, 4294967296) %165) %.not178 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i47, 0 @@ -12120,7 +12119,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17hae91c98c4eae693aE.exit: ; p 189: ; preds = %188 %190 = zext i32 %76 to i64 %191 = add nsw i64 %190, -1 - %192 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %75, i64 0, i64 %191 + %192 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %75, i64 0, i64 %191 %193 = getelementptr inbounds nuw i8, ptr %192, i64 24 %194 = load ptr, ptr %193, align 8, !alias.scope !2394, !noalias !2397, !nonnull !5, !align !434, !noundef !5 %195 = load ptr, ptr %194, align 8, !noalias !2399, !nonnull !5, !noundef !5 @@ -12152,7 +12151,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17hae91c98c4eae693aE.exit: ; p 209: ; preds = %206 %210 = getelementptr inbounds nuw i8, ptr %195, i64 7344 - %211 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %210, i64 0, i64 %200 + %211 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %210, i64 0, i64 %200 call void @"_ZN12multi_buffer91_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$usize$GT$11add_summary17he6f4f2e3c75e8caeE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(104) %211, ptr noalias noundef nonnull readonly align 1 %6) call void @"_ZN12multi_buffer137_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$core..option..Option$LT$multi_buffer..ExcerptId$GT$$GT$11add_summary17hfaddff21cf8c80feE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %85, ptr noalias noundef nonnull readonly align 8 dereferenceable(104) %211, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h1aeefc70e21562a1E.llvm.17983010331538428002.exit.thread" @@ -12507,7 +12506,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl3pop17hb1321d54339a8abbE.exit: ; preds 145: ; preds = %140 %146 = getelementptr inbounds nuw i8, ptr %132, i64 1392 - %147 = getelementptr inbounds [0 x ptr], ptr %146, i64 0, i64 %127 + %147 = getelementptr inbounds nuw [0 x ptr], ptr %146, i64 0, i64 %127 %148 = call noundef i64 @"_ZN12multi_buffer91_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$usize$GT$4zero17h03634c794a849ba1E"(ptr noalias noundef nonnull readonly align 1 %1), !noalias !2487 %149 = call { i64, i64 } @"_ZN12multi_buffer137_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$core..option..Option$LT$multi_buffer..ExcerptId$GT$$GT$4zero17he0345d0af3a2f98cE"(ptr noalias noundef nonnull readonly align 1 %1), !noalias !2487 %150 = extractvalue { i64, i64 } %149, 0 @@ -12604,7 +12603,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h45be828c6206 %19 = zext i32 %17 to i64 %20 = getelementptr inbounds nuw i8, ptr %1, i64 40 %21 = add nsw i64 %19, -1 - %22 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %20, i64 0, i64 %21 + %22 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %20, i64 0, i64 %21 %23 = getelementptr inbounds nuw i8, ptr %22, i64 24 %24 = load ptr, ptr %23, align 8, !alias.scope !2517, !noalias !2520, !nonnull !5, !align !434, !noundef !5 %25 = load ptr, ptr %24, align 8, !noalias !2522, !nonnull !5, !noundef !5 @@ -12636,7 +12635,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h45be828c6206 39: ; preds = %36 %40 = getelementptr inbounds nuw i8, ptr %25, i64 7344 - %41 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %40, i64 0, i64 %30 + %41 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %40, i64 0, i64 %30 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) tail call void @llvm.experimental.noalias.scope.decl(metadata !2523) tail call void @llvm.experimental.noalias.scope.decl(metadata !2526) @@ -12749,7 +12748,7 @@ define hidden noundef align 8 dereferenceable_or_null(600) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 %20 = getelementptr inbounds nuw i8, ptr %19, i64 24 %21 = load ptr, ptr %20, align 8, !nonnull !5, !align !434, !noundef !5 %22 = load ptr, ptr %21, align 8, !nonnull !5, !noundef !5 @@ -12781,7 +12780,7 @@ define hidden noundef align 8 dereferenceable_or_null(600) ptr @"_ZN8sum_tree6cu 36: ; preds = %34 %37 = getelementptr inbounds nuw i8, ptr %22, i64 136 - %38 = getelementptr inbounds [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %37, i64 0, i64 %28 + %38 = getelementptr inbounds nuw [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %37, i64 0, i64 %28 br label %25 39: ; preds = %34 diff --git a/bench/zed-rs/optimized/6xlwohkhrc7sko712xmhy0o82.ll b/bench/zed-rs/optimized/6xlwohkhrc7sko712xmhy0o82.ll index 81d73228abf..fe4312792a9 100644 --- a/bench/zed-rs/optimized/6xlwohkhrc7sko712xmhy0o82.ll +++ b/bench/zed-rs/optimized/6xlwohkhrc7sko712xmhy0o82.ll @@ -5644,7 +5644,7 @@ define hidden noundef align 8 dereferenceable_or_null(200) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !15, !align !305, !noundef !15 %21 = load ptr, ptr %20, align 8, !nonnull !15, !noundef !15 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -5675,7 +5675,7 @@ define hidden noundef align 8 dereferenceable_or_null(200) ptr @"_ZN8sum_tree6cu 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 2064 - %37 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -5853,10 +5853,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx97 = shl nuw nsw i64 %79, 3 %97 = getelementptr inbounds nuw i8, ptr %96, i64 %.idx97 %98 = sub nuw nsw i64 %91, %79 - %99 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 - %100 = sub nsw i64 %82, %79 - %gepdiff98 = and i64 %100, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff98, i64 range(i64 0, 4294967296) %98) + %99 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 + %100 = sub nuw nsw i64 %82, %79 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %100, i64 range(i64 0, 4294967296) %98) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -5870,9 +5869,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 103: ; preds = %.lr.ph, %116 %.sroa.9.0123 = phi i64 [ 0, %.lr.ph ], [ %104, %116 ] - %104 = add nuw nsw i64 %.sroa.9.0123, 1 - %105 = getelementptr inbounds nuw ptr, ptr %97, i64 %.sroa.9.0123 - %106 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 + %104 = add nuw i64 %.sroa.9.0123, 1 + %105 = getelementptr inbounds ptr, ptr %97, i64 %.sroa.9.0123 + %106 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull readonly align 8 dereferenceable(16) %0, i64 16, i1 false), !alias.scope !1237 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %106, ptr noalias noundef nonnull readonly align 1 %6) @@ -5964,7 +5963,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx95 = mul nuw nsw i64 %77, 56 %136 = getelementptr inbounds nuw i8, ptr %135, i64 %.idx95 %137 = sub nuw nsw i64 %130, %77 - %138 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 + %138 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 %.idx96 = sub nsw i64 %75, %77 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx96, i64 range(i64 0, 4294967296) %137) %.not132 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -6037,7 +6036,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 158: ; preds = %157 %159 = zext i32 %65 to i64 %160 = add nsw i64 %159, -1 - %161 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 + %161 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 %162 = load ptr, ptr %161, align 8, !alias.scope !1279, !noalias !1282, !nonnull !15, !align !305, !noundef !15 %163 = load ptr, ptr %162, align 8, !noalias !1284, !nonnull !15, !noundef !15 %164 = getelementptr inbounds nuw i8, ptr %163, i64 16 @@ -6068,7 +6067,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 177: ; preds = %174 %178 = getelementptr inbounds nuw i8, ptr %163, i64 712 - %179 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 + %179 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %179, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17hee790a7b9bfe71efE.exit.thread" @@ -6252,10 +6251,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx69 = shl nuw nsw i64 %77, 3 %98 = getelementptr inbounds nuw i8, ptr %97, i64 %.idx69 %99 = sub nuw nsw i64 %92, %77 - %100 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %96, i64 %77 - %101 = sub nsw i64 %80, %77 - %gepdiff70 = and i64 %101, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff70, i64 range(i64 0, 4294967296) %99) + %100 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %96, i64 %77 + %101 = sub nuw nsw i64 %80, %77 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %101, i64 range(i64 0, 4294967296) %99) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -6270,9 +6268,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 105: ; preds = %.lr.ph, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17he204e8497dd8d145E.exit" %.sroa.9.0104 = phi i64 [ 0, %.lr.ph ], [ %106, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17he204e8497dd8d145E.exit" ] - %106 = add nuw nsw i64 %.sroa.9.0104, 1 - %107 = getelementptr inbounds nuw ptr, ptr %98, i64 %.sroa.9.0104 - %108 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %100, i64 %.sroa.9.0104 + %106 = add nuw i64 %.sroa.9.0104, 1 + %107 = getelementptr inbounds ptr, ptr %98, i64 %.sroa.9.0104 + %108 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %100, i64 %.sroa.9.0104 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) %109 = load i64, ptr %0, align 8, !alias.scope !1320, !noundef !15 %110 = load i64, ptr %48, align 8, !alias.scope !1320, !noundef !15 @@ -6387,7 +6385,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx67 = mul nuw nsw i64 %75, 152 %150 = getelementptr inbounds nuw i8, ptr %149, i64 %.idx67 %151 = sub nuw nsw i64 %144, %75 - %152 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %148, i64 %75 + %152 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %148, i64 %75 %.idx68 = sub nsw i64 %73, %75 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx68, i64 range(i64 0, 4294967296) %151) %.not113 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -6466,7 +6464,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 176: ; preds = %175 %177 = zext i32 %59 to i64 %178 = add nsw i64 %177, -1 - %179 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %58, i64 0, i64 %178 + %179 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %58, i64 0, i64 %178 %180 = load ptr, ptr %179, align 8, !alias.scope !1373, !noalias !1376, !nonnull !15, !align !305, !noundef !15 %181 = load ptr, ptr %180, align 8, !noalias !1378, !nonnull !15, !noundef !15 %182 = getelementptr inbounds nuw i8, ptr %181, i64 16 @@ -6497,7 +6495,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 195: ; preds = %192 %196 = getelementptr inbounds nuw i8, ptr %181, i64 2064 - %197 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %196, i64 0, i64 %186 + %197 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %196, i64 0, i64 %186 call void @"_ZN94_$LT$text..FragmentTextSummary$u20$as$u20$sum_tree..Dimension$LT$text..FragmentSummary$GT$$GT$11add_summary17h5a941026d1b78f08E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(200) %197, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %4) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h989e6972c40912b6E.llvm.8065608219482390506.exit.thread" @@ -6620,7 +6618,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 60: ; preds = %47 %61 = getelementptr inbounds nuw i8, ptr %31, i64 2064 - %62 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %61, i64 0, i64 %52 + %62 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %61, i64 0, i64 %52 %63 = add nuw nsw i64 %52, 1 store i64 %63, ptr %51, align 8 %64 = getelementptr inbounds nuw i8, ptr %29, i64 16 @@ -6634,7 +6632,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 66: ; preds = %._crit_edge63 %67 = getelementptr inbounds nuw i8, ptr %31, i64 2640 - %68 = getelementptr inbounds ptr, ptr %67, i64 %42 + %68 = getelementptr inbounds nuw ptr, ptr %67, i64 %42 %69 = load i64, ptr %0, align 8, !alias.scope !1396, !noundef !15 %70 = load i64, ptr %23, align 8, !alias.scope !1396, !noundef !15 %71 = icmp ult i32 %26, 16 @@ -6789,7 +6787,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 53: ; preds = %40 %54 = getelementptr inbounds nuw i8, ptr %27, i64 712 - %55 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 + %55 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 %56 = add nuw nsw i64 %45, 1 store i64 %56, ptr %44, align 8 %57 = getelementptr inbounds nuw i8, ptr %25, i64 16 @@ -6803,7 +6801,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 59: ; preds = %._crit_edge44 %60 = getelementptr inbounds nuw i8, ptr %27, i64 232 - %61 = getelementptr inbounds ptr, ptr %60, i64 %35 + %61 = getelementptr inbounds nuw ptr, ptr %60, i64 %35 %62 = icmp ult i32 %22, 16 br i1 %62, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h7cbaf5a26df2b2c3E.exit15", label %63 @@ -6944,7 +6942,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph35: ; preds = %.preheader, %62 %48 = phi i64 [ %63, %62 ], [ %.promoted34, %.preheader ] - %49 = getelementptr inbounds [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 + %49 = getelementptr inbounds nuw [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 tail call void @llvm.experimental.noalias.scope.decl(metadata !1463) tail call void @llvm.experimental.noalias.scope.decl(metadata !1466) tail call void @llvm.experimental.noalias.scope.decl(metadata !1469) @@ -7003,7 +7001,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph: ; preds = %.preheader27, %93 %80 = phi i64 [ %94, %93 ], [ %.promoted, %.preheader27 ] - %.sroa.06.033 = getelementptr inbounds { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 + %.sroa.06.033 = getelementptr inbounds nuw { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 tail call void @llvm.experimental.noalias.scope.decl(metadata !1476) tail call void @llvm.experimental.noalias.scope.decl(metadata !1479) tail call void @llvm.experimental.noalias.scope.decl(metadata !1482) @@ -7035,7 +7033,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 97: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h1901f0b9bc57de7cE.exit.thread" %98 = getelementptr inbounds nuw i8, ptr %29, i64 2224 - %99 = getelementptr inbounds ptr, ptr %98, i64 %43 + %99 = getelementptr inbounds nuw ptr, ptr %98, i64 %43 %100 = icmp ult i32 %24, 16 br i1 %100, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h90491a7b4de5ec4aE.exit15", label %101 @@ -7097,7 +7095,7 @@ define hidden { i64, i64 } @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hff49 %18 = zext i32 %16 to i64 %19 = getelementptr inbounds nuw i8, ptr %0, i64 24 %20 = add nsw i64 %18, -1 - %21 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %19, i64 0, i64 %20 + %21 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %19, i64 0, i64 %20 %22 = load ptr, ptr %21, align 8, !alias.scope !1501, !noalias !1504, !nonnull !15, !align !305, !noundef !15 %23 = load ptr, ptr %22, align 8, !noalias !1506, !nonnull !15, !noundef !15 %24 = getelementptr inbounds nuw i8, ptr %23, i64 16 @@ -7128,7 +7126,7 @@ define hidden { i64, i64 } @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hff49 37: ; preds = %34 %38 = getelementptr inbounds nuw i8, ptr %23, i64 2064 - %39 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %38, i64 0, i64 %28 + %39 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %38, i64 0, i64 %28 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) %40 = load i64, ptr %0, align 8, !alias.scope !1507, !noundef !15 %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -7283,7 +7281,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !15, !align !305, !noundef !15 %21 = load ptr, ptr %20, align 8, !nonnull !15, !noundef !15 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -7314,7 +7312,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 32 - %37 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -7353,7 +7351,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !15, !align !305, !noundef !15 %20 = load ptr, ptr %19, align 8, !nonnull !15, !noundef !15 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -7384,7 +7382,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %20, i64 192 - %37 = getelementptr inbounds [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -7424,7 +7422,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !15, !align !305, !noundef !15 %21 = load ptr, ptr %20, align 8, !nonnull !15, !noundef !15 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -7455,7 +7453,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 232 - %37 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 diff --git a/bench/zed-rs/optimized/99xtkjwhw46g7fh9gdw0hgerp.ll b/bench/zed-rs/optimized/99xtkjwhw46g7fh9gdw0hgerp.ll index 58d6ec843a2..cae8731d9ec 100644 --- a/bench/zed-rs/optimized/99xtkjwhw46g7fh9gdw0hgerp.ll +++ b/bench/zed-rs/optimized/99xtkjwhw46g7fh9gdw0hgerp.ll @@ -10457,7 +10457,7 @@ define hidden noundef align 8 dereferenceable_or_null(48) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !42, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -10488,7 +10488,7 @@ define hidden noundef align 8 dereferenceable_or_null(48) ptr @"_ZN8sum_tree6cur 34: ; preds = %32 %35 = getelementptr inbounds nuw i8, ptr %20, i64 1616 - %36 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %35, i64 0, i64 %26 + %36 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %35, i64 0, i64 %26 br label %23 37: ; preds = %32 @@ -10528,7 +10528,7 @@ define hidden noundef align 8 dereferenceable_or_null(200) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !42, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -10559,7 +10559,7 @@ define hidden noundef align 8 dereferenceable_or_null(200) ptr @"_ZN8sum_tree6cu 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 2064 - %37 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -10733,10 +10733,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx101 = shl nuw nsw i64 %80, 3 %99 = getelementptr inbounds nuw i8, ptr %98, i64 %.idx101 %100 = sub nuw nsw i64 %93, %80 - %101 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }, ptr %97, i64 %80 - %102 = sub nsw i64 %83, %80 - %gepdiff102 = and i64 %102, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff102, i64 range(i64 0, 4294967296) %100) + %101 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }, ptr %97, i64 %80 + %102 = sub nuw nsw i64 %83, %80 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %102, i64 range(i64 0, 4294967296) %100) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -10752,9 +10751,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 105: ; preds = %.lr.ph, %119 %106 = phi i64 [ %.pre160, %.lr.ph ], [ %123, %119 ] %.sroa.9.0128 = phi i64 [ 0, %.lr.ph ], [ %107, %119 ] - %107 = add nuw nsw i64 %.sroa.9.0128, 1 - %108 = getelementptr inbounds nuw ptr, ptr %99, i64 %.sroa.9.0128 - %109 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }, ptr %101, i64 %.sroa.9.0128 + %107 = add nuw i64 %.sroa.9.0128, 1 + %108 = getelementptr inbounds ptr, ptr %99, i64 %.sroa.9.0128 + %109 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }, ptr %101, i64 %.sroa.9.0128 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) store i64 %106, ptr %14, align 8 call void @"_ZN4rope81_$LT$impl$u20$sum_tree..Dimension$LT$rope..ChunkSummary$GT$$u20$for$u20$usize$GT$11add_summary17hc81df26e4db62f27E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %109, ptr noalias noundef nonnull readonly align 1 %6) @@ -10846,7 +10845,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx99 = mul nuw nsw i64 %78, 132 %142 = getelementptr inbounds nuw i8, ptr %141, i64 %.idx99 %143 = sub nuw nsw i64 %136, %78 - %144 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }, ptr %140, i64 %78 + %144 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }, ptr %140, i64 %78 %.idx100 = sub nsw i64 %76, %78 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx100, i64 range(i64 0, 4294967296) %143) %.not137 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -10921,7 +10920,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 166: ; preds = %165 %167 = zext i32 %65 to i64 %168 = add nsw i64 %167, -1 - %169 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %64, i64 0, i64 %168 + %169 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %64, i64 0, i64 %168 %170 = load ptr, ptr %169, align 8, !alias.scope !884, !noalias !887, !nonnull !4, !align !42, !noundef !4 %171 = load ptr, ptr %170, align 8, !noalias !889, !nonnull !4, !noundef !4 %172 = getelementptr inbounds nuw i8, ptr %171, i64 16 @@ -10952,7 +10951,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 185: ; preds = %182 %186 = getelementptr inbounds nuw i8, ptr %171, i64 1616 - %187 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %186, i64 0, i64 %176 + %187 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %186, i64 0, i64 %176 call void @"_ZN4rope81_$LT$impl$u20$sum_tree..Dimension$LT$rope..ChunkSummary$GT$$u20$for$u20$usize$GT$11add_summary17hc81df26e4db62f27E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %187, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h04a8b4cee721b8adE.llvm.8640078807756879066.exit.thread" @@ -11162,10 +11161,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx133 = shl nuw nsw i64 %94, 3 %114 = getelementptr inbounds nuw i8, ptr %113, i64 %.idx133 %115 = sub nuw nsw i64 %108, %94 - %116 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %112, i64 %94 - %117 = sub nsw i64 %97, %94 - %gepdiff134 = and i64 %117, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff134, i64 range(i64 0, 4294967296) %115) + %116 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %112, i64 %94 + %117 = sub nuw nsw i64 %97, %94 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %117, i64 range(i64 0, 4294967296) %115) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -11181,9 +11179,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 120: ; preds = %.lr.ph, %135 %.sroa.9.0163 = phi i64 [ 0, %.lr.ph ], [ %121, %135 ] - %121 = add nuw nsw i64 %.sroa.9.0163, 1 - %122 = getelementptr inbounds nuw ptr, ptr %114, i64 %.sroa.9.0163 - %123 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %116, i64 %.sroa.9.0163 + %121 = add nuw i64 %.sroa.9.0163, 1 + %122 = getelementptr inbounds ptr, ptr %114, i64 %.sroa.9.0163 + %123 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %116, i64 %.sroa.9.0163 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) call void @llvm.experimental.noalias.scope.decl(metadata !938) call void @llvm.experimental.noalias.scope.decl(metadata !941) @@ -11296,7 +11294,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx131 = mul nuw nsw i64 %92, 152 %159 = getelementptr inbounds nuw i8, ptr %158, i64 %.idx131 %160 = sub nuw nsw i64 %153, %92 - %161 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %157, i64 %92 + %161 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %157, i64 %92 %.idx132 = sub nsw i64 %90, %92 %.sroa.0.0.sroa.speculated.i.i.i44 = call noundef i64 @llvm.umin.i64(i64 %.idx132, i64 range(i64 0, 4294967296) %160) %.not172 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i44, 0 @@ -11377,7 +11375,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 183: ; preds = %182 %184 = zext i32 %74 to i64 %185 = add nsw i64 %184, -1 - %186 = getelementptr inbounds [0 x { ptr, i64, { ptr, { i64, i64 } } }], ptr %73, i64 0, i64 %185 + %186 = getelementptr inbounds nuw [0 x { ptr, i64, { ptr, { i64, i64 } } }], ptr %73, i64 0, i64 %185 %187 = load ptr, ptr %186, align 8, !alias.scope !1004, !noalias !1007, !nonnull !4, !align !42, !noundef !4 %188 = load ptr, ptr %187, align 8, !noalias !1009, !nonnull !4, !noundef !4 %189 = getelementptr inbounds nuw i8, ptr %188, i64 16 @@ -11408,7 +11406,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 202: ; preds = %199 %203 = getelementptr inbounds nuw i8, ptr %188, i64 2064 - %204 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %203, i64 0, i64 %193 + %204 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %203, i64 0, i64 %193 call void @"_ZN4text133_$LT$impl$u20$sum_tree..Dimension$LT$text..FragmentSummary$GT$$u20$for$u20$core..option..Option$LT$$RF$text..locator..Locator$GT$$GT$11add_summary17h2ab0f5638d220e11E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(200) %204, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %6) call void @"_ZN94_$LT$text..FragmentTextSummary$u20$as$u20$sum_tree..Dimension$LT$text..FragmentSummary$GT$$GT$11add_summary17h5a941026d1b78f08E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %82, ptr noalias noundef nonnull readonly align 8 dereferenceable(200) %204, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h88c5fe6a651ab7ecE.exit.thread" @@ -11530,7 +11528,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 57: ; preds = %.lr.ph, %62 %58 = phi i64 [ %44, %.lr.ph ], [ %64, %62 ] - %59 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %50, i64 0, i64 %58 + %59 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %50, i64 0, i64 %58 %60 = getelementptr inbounds nuw i8, ptr %59, i64 16 %61 = tail call noundef zeroext i1 @_ZN5clock6Global12observed_all17h7e5cdef1950bf634E(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %25, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %60), !noalias !1027 %.pre77.pre = load i64, ptr %45, align 8 @@ -11558,7 +11556,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 75: ; preds = %68 %76 = getelementptr inbounds nuw i8, ptr %33, i64 2064 - %77 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %76, i64 0, i64 %73 + %77 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %76, i64 0, i64 %73 %78 = add nuw nsw i64 %73, 1 store i64 %78, ptr %72, align 8 %79 = getelementptr inbounds nuw i8, ptr %31, i64 16 @@ -11586,7 +11584,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 88: ; preds = %.lr.ph68, %91 %.pn = phi i64 [ %85, %.lr.ph68 ], [ %96, %91 ] - %.sroa.06.067 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %82, i64 %.pn + %.sroa.06.067 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %82, i64 %.pn %89 = getelementptr inbounds nuw i8, ptr %.sroa.06.067, i64 16 %90 = tail call noundef zeroext i1 @_ZN5clock6Global12observed_all17h7e5cdef1950bf634E(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %25, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %89), !noalias !1032 br i1 %90, label %91, label %.loopexit56 @@ -11605,7 +11603,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 97: ; preds = %._crit_edge %98 = getelementptr inbounds nuw i8, ptr %33, i64 2640 - %99 = getelementptr inbounds ptr, ptr %98, i64 %52 + %99 = getelementptr inbounds nuw ptr, ptr %98, i64 %52 %100 = load i64, ptr %0, align 8, !alias.scope !1037, !noundef !4 %101 = load i64, ptr %24, align 8, !alias.scope !1037, !noundef !4 tail call void @llvm.experimental.noalias.scope.decl(metadata !1040) @@ -11754,7 +11752,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph35: ; preds = %.preheader, %62 %48 = phi i64 [ %63, %62 ], [ %.promoted34, %.preheader ] - %49 = getelementptr inbounds [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 + %49 = getelementptr inbounds nuw [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 tail call void @llvm.experimental.noalias.scope.decl(metadata !1075) tail call void @llvm.experimental.noalias.scope.decl(metadata !1078) tail call void @llvm.experimental.noalias.scope.decl(metadata !1081) @@ -11813,7 +11811,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph: ; preds = %.preheader27, %93 %80 = phi i64 [ %94, %93 ], [ %.promoted, %.preheader27 ] - %.sroa.06.033 = getelementptr inbounds { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 + %.sroa.06.033 = getelementptr inbounds nuw { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 tail call void @llvm.experimental.noalias.scope.decl(metadata !1088) tail call void @llvm.experimental.noalias.scope.decl(metadata !1091) tail call void @llvm.experimental.noalias.scope.decl(metadata !1094) @@ -11845,7 +11843,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 97: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17hd2713792d3f51691E.exit.thread" %98 = getelementptr inbounds nuw i8, ptr %29, i64 2224 - %99 = getelementptr inbounds ptr, ptr %98, i64 %43 + %99 = getelementptr inbounds nuw ptr, ptr %98, i64 %43 %100 = icmp ult i32 %24, 16 br i1 %100, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h9ab183c7b2cfe9e9E.exit15", label %101 @@ -11978,7 +11976,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 55: ; preds = %42 %56 = getelementptr inbounds nuw i8, ptr %28, i64 1616 - %57 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %56, i64 0, i64 %47 + %57 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %56, i64 0, i64 %47 %58 = add nuw nsw i64 %47, 1 store i64 %58, ptr %46, align 8 %59 = getelementptr inbounds nuw i8, ptr %26, i64 16 @@ -11992,7 +11990,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 61: ; preds = %._crit_edge50 %62 = getelementptr inbounds nuw i8, ptr %28, i64 616 - %63 = getelementptr inbounds ptr, ptr %62, i64 %37 + %63 = getelementptr inbounds nuw ptr, ptr %62, i64 %37 %64 = load i64, ptr %20, align 8, !alias.scope !1130, !noundef !4 %65 = icmp ult i32 %23, 16 br i1 %65, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h794cc894644348d5E.exit15", label %66 @@ -12069,7 +12067,7 @@ define hidden { i64, i64 } @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hc7fe %18 = zext i32 %16 to i64 %19 = getelementptr inbounds nuw i8, ptr %0, i64 24 %20 = add nsw i64 %18, -1 - %21 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %19, i64 0, i64 %20 + %21 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %19, i64 0, i64 %20 %22 = load ptr, ptr %21, align 8, !alias.scope !1152, !noalias !1155, !nonnull !4, !align !42, !noundef !4 %23 = load ptr, ptr %22, align 8, !noalias !1157, !nonnull !4, !noundef !4 %24 = getelementptr inbounds nuw i8, ptr %23, i64 16 @@ -12100,7 +12098,7 @@ define hidden { i64, i64 } @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hc7fe 37: ; preds = %34 %38 = getelementptr inbounds nuw i8, ptr %23, i64 2064 - %39 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %38, i64 0, i64 %28 + %39 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %38, i64 0, i64 %28 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) %40 = load i64, ptr %0, align 8, !alias.scope !1158, !noundef !4 %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -12161,7 +12159,7 @@ define hidden noundef i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hcbc9a %17 = zext i32 %15 to i64 %18 = getelementptr inbounds nuw i8, ptr %0, i64 8 %19 = add nsw i64 %17, -1 - %20 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %18, i64 0, i64 %19 + %20 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %18, i64 0, i64 %19 %21 = load ptr, ptr %20, align 8, !alias.scope !1164, !noalias !1167, !nonnull !4, !align !42, !noundef !4 %22 = load ptr, ptr %21, align 8, !noalias !1169, !nonnull !4, !noundef !4 %23 = getelementptr inbounds nuw i8, ptr %22, i64 16 @@ -12192,7 +12190,7 @@ define hidden noundef i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17hcbc9a 36: ; preds = %33 %37 = getelementptr inbounds nuw i8, ptr %22, i64 1616 - %38 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %37, i64 0, i64 %27 + %38 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] } }], ptr %37, i64 0, i64 %27 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) %39 = getelementptr inbounds nuw i8, ptr %0, i64 392 %40 = load i64, ptr %39, align 8, !alias.scope !1170, !noundef !4 @@ -12342,7 +12340,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, { ptr, { i64, i64 } } }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, { ptr, { i64, i64 } } }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !42, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -12373,7 +12371,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu 34: ; preds = %32 %35 = getelementptr inbounds nuw i8, ptr %20, i64 232 - %36 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %35, i64 0, i64 %26 + %36 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %35, i64 0, i64 %26 br label %23 37: ; preds = %32 @@ -12412,7 +12410,7 @@ define hidden noundef align 4 dereferenceable_or_null(132) ptr @"_ZN8sum_tree6cu %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !42, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -12443,7 +12441,7 @@ define hidden noundef align 4 dereferenceable_or_null(132) ptr @"_ZN8sum_tree6cu 34: ; preds = %32 %35 = getelementptr inbounds nuw i8, ptr %20, i64 24 - %36 = getelementptr inbounds [0 x { { i32, [128 x i8] } }], ptr %35, i64 0, i64 %26 + %36 = getelementptr inbounds nuw [0 x { { i32, [128 x i8] } }], ptr %35, i64 0, i64 %26 br label %23 37: ; preds = %32 @@ -12483,7 +12481,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !42, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -12514,7 +12512,7 @@ define hidden noundef align 8 dereferenceable_or_null(152) ptr @"_ZN8sum_tree6cu 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 232 - %37 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -12553,7 +12551,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !42, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -12584,7 +12582,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %20, i64 192 - %37 = getelementptr inbounds [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 diff --git a/bench/zed-rs/optimized/b6uky6p5knfjtl24nerxiq7a4.ll b/bench/zed-rs/optimized/b6uky6p5knfjtl24nerxiq7a4.ll index ea8a2b9c6ef..ba3cbc567e9 100644 --- a/bench/zed-rs/optimized/b6uky6p5knfjtl24nerxiq7a4.ll +++ b/bench/zed-rs/optimized/b6uky6p5knfjtl24nerxiq7a4.ll @@ -868,10 +868,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx106 = shl nuw nsw i64 %77, 3 %95 = getelementptr inbounds nuw i8, ptr %94, i64 %.idx106 %96 = sub nuw nsw i64 %89, %77 - %97 = getelementptr inbounds { i64, i64, i64 }, ptr %93, i64 %77 - %98 = sub nsw i64 %80, %77 - %gepdiff107 = and i64 %98, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff107, i64 range(i64 0, 4294967296) %96) + %97 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %93, i64 %77 + %98 = sub nuw nsw i64 %80, %77 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %98, i64 range(i64 0, 4294967296) %96) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -887,9 +886,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 101: ; preds = %.lr.ph, %115 %.val41 = phi i64 [ %.val41.pre, %.lr.ph ], [ %.val38, %115 ] %.sroa.9.0132 = phi i64 [ 0, %.lr.ph ], [ %102, %115 ] - %102 = add nuw nsw i64 %.sroa.9.0132, 1 - %103 = getelementptr inbounds nuw ptr, ptr %95, i64 %.sroa.9.0132 - %104 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %97, i64 %.sroa.9.0132 + %102 = add nuw i64 %.sroa.9.0132, 1 + %103 = getelementptr inbounds ptr, ptr %95, i64 %.sroa.9.0132 + %104 = getelementptr inbounds { i64, i64, i64 }, ptr %97, i64 %.sroa.9.0132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) store i64 %.val41, ptr %14, align 8 call void @llvm.experimental.noalias.scope.decl(metadata !145) @@ -984,7 +983,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx104 = mul nuw nsw i64 %75, 72 %136 = getelementptr inbounds nuw i8, ptr %135, i64 %.idx104 %137 = sub nuw nsw i64 %130, %75 - %138 = getelementptr inbounds { i64, i64, i64 }, ptr %134, i64 %75 + %138 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %134, i64 %75 %.idx105 = sub nsw i64 %73, %75 %.sroa.0.0.sroa.speculated.i.i.i44 = call noundef i64 @llvm.umin.i64(i64 %.idx105, i64 range(i64 0, 4294967296) %137) %.not141 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i44, 0 @@ -1062,7 +1061,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 160: ; preds = %159 %161 = zext i32 %63 to i64 %162 = add nsw i64 %161, -1 - %163 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %62, i64 0, i64 %162 + %163 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %62, i64 0, i64 %162 %164 = load ptr, ptr %163, align 8, !alias.scope !189, !noalias !192, !nonnull !12, !align !124, !noundef !12 %165 = load ptr, ptr %164, align 8, !noalias !194, !nonnull !12, !noundef !12 %166 = getelementptr inbounds nuw i8, ptr %165, i64 16 @@ -1093,7 +1092,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 179: ; preds = %176 %180 = getelementptr inbounds nuw i8, ptr %165, i64 928 - %181 = getelementptr inbounds [0 x { i64, i64, i64 }], ptr %180, i64 0, i64 %170 + %181 = getelementptr inbounds nuw [0 x { i64, i64, i64 }], ptr %180, i64 0, i64 %170 call void @llvm.experimental.noalias.scope.decl(metadata !195) call void @llvm.experimental.noalias.scope.decl(metadata !198) %182 = load i64, ptr %181, align 8, !alias.scope !198, !noalias !195, !noundef !12 @@ -1269,10 +1268,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx67 = shl nuw nsw i64 %72, 3 %91 = getelementptr inbounds nuw i8, ptr %90, i64 %.idx67 %92 = sub nuw nsw i64 %85, %72 - %93 = getelementptr inbounds { i64, i64, i64 }, ptr %89, i64 %72 - %94 = sub nsw i64 %75, %72 - %gepdiff68 = and i64 %94, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff68, i64 range(i64 0, 4294967296) %92) + %93 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %89, i64 %72 + %94 = sub nuw nsw i64 %75, %72 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %94, i64 range(i64 0, 4294967296) %92) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -1287,9 +1285,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 98: ; preds = %.lr.ph, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17h1a74dccdb155cd2cE.exit" %.sroa.9.0100 = phi i64 [ 0, %.lr.ph ], [ %99, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17h1a74dccdb155cd2cE.exit" ] - %99 = add nuw nsw i64 %.sroa.9.0100, 1 - %100 = getelementptr inbounds nuw ptr, ptr %91, i64 %.sroa.9.0100 - %101 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %93, i64 %.sroa.9.0100 + %99 = add nuw i64 %.sroa.9.0100, 1 + %100 = getelementptr inbounds ptr, ptr %91, i64 %.sroa.9.0100 + %101 = getelementptr inbounds { i64, i64, i64 }, ptr %93, i64 %.sroa.9.0100 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) %.val43 = load i64, ptr %0, align 8, !noundef !12 %.val44 = load i64, ptr %45, align 8, !noundef !12 @@ -1415,7 +1413,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx65 = mul nuw nsw i64 %70, 72 %141 = getelementptr inbounds nuw i8, ptr %140, i64 %.idx65 %142 = sub nuw nsw i64 %135, %70 - %143 = getelementptr inbounds { i64, i64, i64 }, ptr %139, i64 %70 + %143 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %139, i64 %70 %.idx66 = sub nsw i64 %68, %70 %.sroa.0.0.sroa.speculated.i.i.i50 = call noundef i64 @llvm.umin.i64(i64 %.idx66, i64 range(i64 0, 4294967296) %142) %.not109 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i50, 0 @@ -1505,7 +1503,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 169: ; preds = %168 %170 = zext i32 %56 to i64 %171 = add nsw i64 %170, -1 - %172 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %55, i64 0, i64 %171 + %172 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %55, i64 0, i64 %171 %173 = load ptr, ptr %172, align 8, !alias.scope !308, !noalias !311, !nonnull !12, !align !124, !noundef !12 %174 = load ptr, ptr %173, align 8, !noalias !313, !nonnull !12, !noundef !12 %175 = getelementptr inbounds nuw i8, ptr %174, i64 16 @@ -1536,7 +1534,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 188: ; preds = %185 %189 = getelementptr inbounds nuw i8, ptr %174, i64 928 - %190 = getelementptr inbounds [0 x { i64, i64, i64 }], ptr %189, i64 0, i64 %179 + %190 = getelementptr inbounds nuw [0 x { i64, i64, i64 }], ptr %189, i64 0, i64 %179 call void @llvm.experimental.noalias.scope.decl(metadata !314) call void @llvm.experimental.noalias.scope.decl(metadata !317) call void @llvm.experimental.noalias.scope.decl(metadata !319) @@ -1717,10 +1715,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx106 = shl nuw nsw i64 %77, 3 %95 = getelementptr inbounds nuw i8, ptr %94, i64 %.idx106 %96 = sub nuw nsw i64 %89, %77 - %97 = getelementptr inbounds { i64, i64, i64 }, ptr %93, i64 %77 - %98 = sub nsw i64 %80, %77 - %gepdiff107 = and i64 %98, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff107, i64 range(i64 0, 4294967296) %96) + %97 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %93, i64 %77 + %98 = sub nuw nsw i64 %80, %77 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %98, i64 range(i64 0, 4294967296) %96) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -1736,9 +1733,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 101: ; preds = %.lr.ph, %117 %.val41 = phi i64 [ %.val41.pre, %.lr.ph ], [ %.val38, %117 ] %.sroa.9.0132 = phi i64 [ 0, %.lr.ph ], [ %102, %117 ] - %102 = add nuw nsw i64 %.sroa.9.0132, 1 - %103 = getelementptr inbounds nuw ptr, ptr %95, i64 %.sroa.9.0132 - %104 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %97, i64 %.sroa.9.0132 + %102 = add nuw i64 %.sroa.9.0132, 1 + %103 = getelementptr inbounds ptr, ptr %95, i64 %.sroa.9.0132 + %104 = getelementptr inbounds { i64, i64, i64 }, ptr %97, i64 %.sroa.9.0132 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) store i64 %.val41, ptr %14, align 8 call void @llvm.experimental.noalias.scope.decl(metadata !358) @@ -1835,7 +1832,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx104 = mul nuw nsw i64 %75, 72 %138 = getelementptr inbounds nuw i8, ptr %137, i64 %.idx104 %139 = sub nuw nsw i64 %132, %75 - %140 = getelementptr inbounds { i64, i64, i64 }, ptr %136, i64 %75 + %140 = getelementptr inbounds nuw { i64, i64, i64 }, ptr %136, i64 %75 %.idx105 = sub nsw i64 %73, %75 %.sroa.0.0.sroa.speculated.i.i.i44 = call noundef i64 @llvm.umin.i64(i64 %.idx105, i64 range(i64 0, 4294967296) %139) %.not141 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i44, 0 @@ -1915,7 +1912,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 164: ; preds = %163 %165 = zext i32 %63 to i64 %166 = add nsw i64 %165, -1 - %167 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %62, i64 0, i64 %166 + %167 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %62, i64 0, i64 %166 %168 = load ptr, ptr %167, align 8, !alias.scope !402, !noalias !405, !nonnull !12, !align !124, !noundef !12 %169 = load ptr, ptr %168, align 8, !noalias !407, !nonnull !12, !noundef !12 %170 = getelementptr inbounds nuw i8, ptr %169, i64 16 @@ -2075,7 +2072,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 49: ; preds = %41 %50 = getelementptr inbounds nuw i8, ptr %27, i64 928 - %51 = getelementptr inbounds [0 x { i64, i64, i64 }], ptr %50, i64 0, i64 %44 + %51 = getelementptr inbounds nuw [0 x { i64, i64, i64 }], ptr %50, i64 0, i64 %44 %52 = add nuw nsw i64 %44, 1 store i64 %52, ptr %43, align 8 %53 = getelementptr inbounds nuw i8, ptr %25, i64 16 @@ -2104,7 +2101,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 62: ; preds = %._crit_edge76 %63 = getelementptr inbounds nuw i8, ptr %27, i64 352 - %64 = getelementptr inbounds ptr, ptr %63, i64 %36 + %64 = getelementptr inbounds nuw ptr, ptr %63, i64 %36 %65 = icmp ult i32 %storemerge5658, 16 br i1 %65, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h290b57ed3f75cc1fE.exit15", label %66 @@ -2265,7 +2262,7 @@ define hidden noundef align 8 dereferenceable_or_null(72) ptr @"_ZN8sum_tree6cur %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !12, !align !124, !noundef !12 %21 = load ptr, ptr %20, align 8, !nonnull !12, !noundef !12 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -2296,7 +2293,7 @@ define hidden noundef align 8 dereferenceable_or_null(72) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 56 - %37 = getelementptr inbounds [0 x { { i64, [4 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, i64, i8, i8, [6 x i8] }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, [4 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, i64, i8, i8, [6 x i8] }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -2335,7 +2332,7 @@ define hidden noundef align 8 dereferenceable_or_null(72) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !12, !align !124, !noundef !12 %20 = load ptr, ptr %19, align 8, !nonnull !12, !noundef !12 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -2366,7 +2363,7 @@ define hidden noundef align 8 dereferenceable_or_null(72) ptr @"_ZN8sum_tree6cur 34: ; preds = %32 %35 = getelementptr inbounds nuw i8, ptr %20, i64 56 - %36 = getelementptr inbounds [0 x { { i64, [4 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, i64, i8, i8, [6 x i8] }], ptr %35, i64 0, i64 %26 + %36 = getelementptr inbounds nuw [0 x { { i64, [4 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, i64, i8, i8, [6 x i8] }], ptr %35, i64 0, i64 %26 br label %23 37: ; preds = %32 @@ -2405,7 +2402,7 @@ define hidden noundef align 8 dereferenceable_or_null(72) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, i64 }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !12, !align !124, !noundef !12 %20 = load ptr, ptr %19, align 8, !nonnull !12, !noundef !12 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -2436,7 +2433,7 @@ define hidden noundef align 8 dereferenceable_or_null(72) ptr @"_ZN8sum_tree6cur 34: ; preds = %32 %35 = getelementptr inbounds nuw i8, ptr %20, i64 56 - %36 = getelementptr inbounds [0 x { { i64, [4 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, i64, i8, i8, [6 x i8] }], ptr %35, i64 0, i64 %26 + %36 = getelementptr inbounds nuw [0 x { { i64, [4 x i64] }, { { i32, { i32, i8, i8, i8, i8 } }, { i8, i8, i8 }, [1 x i8] }, i64, i8, i8, [6 x i8] }], ptr %35, i64 0, i64 %26 br label %23 37: ; preds = %32 diff --git a/bench/zed-rs/optimized/coobscod1tjvofpoi7fi6r7gk.ll b/bench/zed-rs/optimized/coobscod1tjvofpoi7fi6r7gk.ll index 579eb96cb94..3db5eb94a01 100644 --- a/bench/zed-rs/optimized/coobscod1tjvofpoi7fi6r7gk.ll +++ b/bench/zed-rs/optimized/coobscod1tjvofpoi7fi6r7gk.ll @@ -25912,10 +25912,9 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 %.idx68.i = shl nuw nsw i64 %395, 3 %414 = getelementptr inbounds nuw i8, ptr %413, i64 %.idx68.i %415 = sub nuw nsw i64 %407, %395 - %416 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %412, i64 %395 - %417 = sub nsw i64 %398, %395 - %gepdiff69.i = and i64 %417, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff69.i, i64 range(i64 0, 4294967296) %415) + %416 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %412, i64 %395 + %417 = sub nuw nsw i64 %398, %395 + %.sroa.0.0.sroa.speculated.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %417, i64 range(i64 0, 4294967296) %415) %.not.i293 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i.i, 0 br i1 %.not.i293, label %.loopexit.i, label %.lr.ph.i294 @@ -25928,9 +25927,9 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 420: ; preds = %.noexc308, %.lr.ph.i294 %.val45.i = phi i64 [ %.val45.i.pre, %.lr.ph.i294 ], [ %.val41.i, %.noexc308 ] %.sroa.9.0101.i = phi i64 [ 0, %.lr.ph.i294 ], [ %421, %.noexc308 ] - %421 = add nuw nsw i64 %.sroa.9.0101.i, 1 - %422 = getelementptr inbounds nuw ptr, ptr %414, i64 %.sroa.9.0101.i - %423 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %416, i64 %.sroa.9.0101.i + %421 = add nuw i64 %.sroa.9.0101.i, 1 + %422 = getelementptr inbounds ptr, ptr %414, i64 %.sroa.9.0101.i + %423 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %416, i64 %.sroa.9.0101.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12), !noalias !7460 %.val46.i = load i64, ptr %171, align 8, !alias.scope !7455, !noalias !7458, !noundef !4 store i64 %.val45.i, ptr %12, align 8, !noalias !7460 @@ -26034,7 +26033,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 %.idx66.i = mul nuw nsw i64 %393, 152 %454 = getelementptr inbounds nuw i8, ptr %453, i64 %.idx66.i %455 = sub nuw nsw i64 %449, %393 - %456 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %452, i64 %393 + %456 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %452, i64 %393 %.idx67.i = sub nsw i64 %391, %393 %.sroa.0.0.sroa.speculated.i.i.i52.i = call noundef i64 @llvm.umin.i64(i64 %.idx67.i, i64 range(i64 0, 4294967296) %455) %.not110.i = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i52.i, 0 @@ -26225,7 +26224,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 504: ; preds = %502 %505 = zext i32 %503 to i64 %506 = add nsw i64 %505, -1 - %507 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %506 + %507 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %506 %508 = load ptr, ptr %507, align 8, !alias.scope !7572, !noalias !7575, !nonnull !4, !align !5, !noundef !4 %509 = load ptr, ptr %508, align 8, !noalias !7577, !nonnull !4, !noundef !4 %510 = getelementptr inbounds nuw i8, ptr %509, i64 16 @@ -26270,7 +26269,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 525: ; preds = %520 %526 = getelementptr inbounds nuw i8, ptr %509, i64 232 - %527 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %526, i64 0, i64 %514 + %527 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %526, i64 0, i64 %514 invoke fastcc void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E"(ptr noalias nocapture noundef align 8 dereferenceable(152) %64, ptr noalias noundef readonly align 8 dereferenceable(152) %527) to label %528 unwind label %228 @@ -26730,7 +26729,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 660: ; preds = %658 %661 = zext i32 %659 to i64 %662 = add nsw i64 %661, -1 - %663 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %662 + %663 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %662 %664 = load ptr, ptr %663, align 8, !alias.scope !7706, !noalias !7709, !nonnull !4, !align !5, !noundef !4 %665 = load ptr, ptr %664, align 8, !noalias !7711, !nonnull !4, !noundef !4 %666 = getelementptr inbounds nuw i8, ptr %665, i64 16 @@ -26783,7 +26782,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 683: ; preds = %676 %684 = getelementptr inbounds nuw i8, ptr %665, i64 232 - %685 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %684, i64 0, i64 %670 + %685 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %684, i64 0, i64 %670 invoke fastcc void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E"(ptr noalias nocapture noundef align 8 dereferenceable(152) %83, ptr noalias noundef readonly align 8 dereferenceable(152) %685) to label %686 unwind label %.critedge145.thread530.loopexit.split-lp.loopexit @@ -26896,7 +26895,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 724: ; preds = %722 %725 = zext i32 %723 to i64 %726 = add nsw i64 %725, -1 - %727 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %726 + %727 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %726 %728 = load ptr, ptr %727, align 8, !alias.scope !7717, !noalias !7720, !nonnull !4, !align !5, !noundef !4 %729 = load ptr, ptr %728, align 8, !noalias !7722, !nonnull !4, !noundef !4 %730 = getelementptr inbounds nuw i8, ptr %729, i64 16 @@ -26924,7 +26923,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 743: ; preds = %739 %744 = getelementptr inbounds nuw i8, ptr %729, i64 232 - %745 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %744, i64 0, i64 %734 + %745 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %744, i64 0, i64 %734 invoke fastcc void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E"(ptr noalias nocapture noundef align 8 dereferenceable(152) %79, ptr noalias noundef readonly align 8 dereferenceable(152) %745) to label %746 unwind label %.critedge145.thread530.loopexit.split-lp.loopexit @@ -27082,7 +27081,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 796: ; preds = %794 %797 = zext i32 %795 to i64 %798 = add nsw i64 %797, -1 - %799 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %798 + %799 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %798 %800 = load ptr, ptr %799, align 8, !alias.scope !7748, !noalias !7751, !nonnull !4, !align !5, !noundef !4 %801 = load ptr, ptr %800, align 8, !noalias !7753, !nonnull !4, !noundef !4 %802 = getelementptr inbounds nuw i8, ptr %801, i64 16 @@ -27105,7 +27104,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 813: ; preds = %811 %814 = getelementptr inbounds nuw i8, ptr %801, i64 232 - %815 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %814, i64 0, i64 %806 + %815 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %814, i64 0, i64 %806 br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$4item17h91ea856db354764aE.exit210" 816: ; preds = %741, %884 @@ -27377,7 +27376,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 898: ; preds = %896 %899 = zext i32 %897 to i64 %900 = add nsw i64 %899, -1 - %901 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %900 + %901 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %239, i64 0, i64 %900 %902 = load ptr, ptr %901, align 8, !alias.scope !7808, !noalias !7811, !nonnull !4, !align !5, !noundef !4 %903 = load ptr, ptr %902, align 8, !noalias !7813, !nonnull !4, !noundef !4 %904 = getelementptr inbounds nuw i8, ptr %903, i64 16 @@ -27452,7 +27451,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 936: ; preds = %913 %937 = getelementptr inbounds nuw i8, ptr %903, i64 232 - %938 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %937, i64 0, i64 %908 + %938 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %937, i64 0, i64 %908 call void @llvm.experimental.noalias.scope.decl(metadata !7822) %939 = getelementptr inbounds nuw i8, ptr %903, i64 2056 %940 = load i32, ptr %939, align 8, !noalias !7825, !noundef !4 @@ -27466,7 +27465,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 945: ; preds = %943 %946 = getelementptr inbounds nuw i8, ptr %903, i64 2064 - %947 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %946, i64 0, i64 %908 + %947 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %946, i64 0, i64 %908 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27), !noalias !7830 %.val5.i = load i64, ptr %88, align 8, !alias.scope !7822, !noalias !7831, !noundef !4 %.val6.i = load i64, ptr %171, align 8, !alias.scope !7822, !noalias !7831, !noundef !4 @@ -27931,7 +27930,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 1103: ; preds = %1091 %1104 = getelementptr inbounds nuw i8, ptr %1077, i64 2064 - %1105 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %1104, i64 0, i64 %1096 + %1105 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %1104, i64 0, i64 %1096 %1106 = add nuw nsw i64 %1096, 1 store i64 %1106, ptr %1095, align 8, !alias.scope !7903, !noalias !7906 %1107 = getelementptr inbounds nuw i8, ptr %1075, i64 16 @@ -27951,7 +27950,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17h6b1d22846e477d17E.llvm.6 1109: ; preds = %._crit_edge43.i %1110 = getelementptr inbounds nuw i8, ptr %1077, i64 2640 - %1111 = getelementptr inbounds ptr, ptr %1110, i64 %1086 + %1111 = getelementptr inbounds nuw ptr, ptr %1110, i64 %1086 %.val17.i = load i64, ptr %88, align 8, !alias.scope !7903, !noalias !7906, !noundef !4 %.val18.i = load i64, ptr %171, align 8, !alias.scope !7903, !noalias !7906, !noundef !4 %1112 = icmp ult i32 %1072, 16 @@ -53936,10 +53935,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx97 = shl nuw nsw i64 %79, 3 %97 = getelementptr inbounds nuw i8, ptr %96, i64 %.idx97 %98 = sub nuw nsw i64 %91, %79 - %99 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 - %100 = sub nsw i64 %82, %79 - %gepdiff98 = and i64 %100, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff98, i64 range(i64 0, 4294967296) %98) + %99 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 + %100 = sub nuw nsw i64 %82, %79 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %100, i64 range(i64 0, 4294967296) %98) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -53953,9 +53951,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 103: ; preds = %.lr.ph, %116 %.sroa.9.0123 = phi i64 [ 0, %.lr.ph ], [ %104, %116 ] - %104 = add nuw nsw i64 %.sroa.9.0123, 1 - %105 = getelementptr inbounds nuw ptr, ptr %97, i64 %.sroa.9.0123 - %106 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 + %104 = add nuw i64 %.sroa.9.0123, 1 + %105 = getelementptr inbounds ptr, ptr %97, i64 %.sroa.9.0123 + %106 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull readonly align 8 dereferenceable(16) %0, i64 16, i1 false), !alias.scope !14436 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %106, ptr noalias noundef nonnull readonly align 1 %6) @@ -54047,7 +54045,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx95 = mul nuw nsw i64 %77, 56 %136 = getelementptr inbounds nuw i8, ptr %135, i64 %.idx95 %137 = sub nuw nsw i64 %130, %77 - %138 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 + %138 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 %.idx96 = sub nsw i64 %75, %77 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx96, i64 range(i64 0, 4294967296) %137) %.not132 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -54120,7 +54118,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 158: ; preds = %157 %159 = zext i32 %65 to i64 %160 = add nsw i64 %159, -1 - %161 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 + %161 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 %162 = load ptr, ptr %161, align 8, !alias.scope !14478, !noalias !14481, !nonnull !4, !align !5, !noundef !4 %163 = load ptr, ptr %162, align 8, !noalias !14483, !nonnull !4, !noundef !4 %164 = getelementptr inbounds nuw i8, ptr %163, i64 16 @@ -54151,7 +54149,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 177: ; preds = %174 %178 = getelementptr inbounds nuw i8, ptr %163, i64 712 - %179 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 + %179 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %179, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h4dc4a09db151c4e8E.exit.thread" @@ -54328,10 +54326,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx68 = shl nuw nsw i64 %62, 3 %81 = getelementptr inbounds nuw i8, ptr %80, i64 %.idx68 %82 = sub nuw nsw i64 %75, %62 - %83 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %79, i64 %62 - %84 = sub nsw i64 %65, %62 - %gepdiff69 = and i64 %84, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff69, i64 range(i64 0, 4294967296) %82) + %83 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %79, i64 %62 + %84 = sub nuw nsw i64 %65, %62 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %84, i64 range(i64 0, 4294967296) %82) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -54346,9 +54343,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 88: ; preds = %.lr.ph, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17h3434ea9f7159afe5E.exit" %.sroa.9.0101 = phi i64 [ 0, %.lr.ph ], [ %89, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17h3434ea9f7159afe5E.exit" ] - %89 = add nuw nsw i64 %.sroa.9.0101, 1 - %90 = getelementptr inbounds nuw ptr, ptr %81, i64 %.sroa.9.0101 - %91 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %83, i64 %.sroa.9.0101 + %89 = add nuw i64 %.sroa.9.0101, 1 + %90 = getelementptr inbounds ptr, ptr %81, i64 %.sroa.9.0101 + %91 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %83, i64 %.sroa.9.0101 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) %.val45 = load i64, ptr %0, align 8, !noundef !4 %.val46 = load i64, ptr %39, align 8, !noundef !4 @@ -54455,7 +54452,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx66 = mul nuw nsw i64 %60, 152 %123 = getelementptr inbounds nuw i8, ptr %122, i64 %.idx66 %124 = sub nuw nsw i64 %117, %60 - %125 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %121, i64 %60 + %125 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %121, i64 %60 %.idx67 = sub nsw i64 %58, %60 %.sroa.0.0.sroa.speculated.i.i.i52 = call noundef i64 @llvm.umin.i64(i64 %.idx67, i64 range(i64 0, 4294967296) %124) %.not110 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i52, 0 @@ -54619,7 +54616,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_f 57: ; preds = %44 %58 = getelementptr inbounds nuw i8, ptr %30, i64 2064 - %59 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %58, i64 0, i64 %49 + %59 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %58, i64 0, i64 %49 %60 = add nuw nsw i64 %49, 1 store i64 %60, ptr %48, align 8 %61 = getelementptr inbounds nuw i8, ptr %28, i64 16 @@ -54633,7 +54630,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_f 63: ; preds = %._crit_edge43 %64 = getelementptr inbounds nuw i8, ptr %30, i64 2640 - %65 = getelementptr inbounds ptr, ptr %64, i64 %39 + %65 = getelementptr inbounds nuw ptr, ptr %64, i64 %39 %.val17 = load i64, ptr %0, align 8, !noundef !4 %.val18 = load i64, ptr %22, align 8, !noundef !4 %66 = icmp ult i32 %25, 16 @@ -54780,7 +54777,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph35: ; preds = %.preheader, %62 %48 = phi i64 [ %63, %62 ], [ %.promoted34, %.preheader ] - %49 = getelementptr inbounds [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 + %49 = getelementptr inbounds nuw [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 tail call void @llvm.experimental.noalias.scope.decl(metadata !14598) tail call void @llvm.experimental.noalias.scope.decl(metadata !14601) tail call void @llvm.experimental.noalias.scope.decl(metadata !14604) @@ -54839,7 +54836,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph: ; preds = %.preheader27, %93 %80 = phi i64 [ %94, %93 ], [ %.promoted, %.preheader27 ] - %.sroa.06.033 = getelementptr inbounds { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 + %.sroa.06.033 = getelementptr inbounds nuw { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 tail call void @llvm.experimental.noalias.scope.decl(metadata !14611) tail call void @llvm.experimental.noalias.scope.decl(metadata !14614) tail call void @llvm.experimental.noalias.scope.decl(metadata !14617) @@ -54871,7 +54868,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 97: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h109716f7e41cad2fE.exit.thread" %98 = getelementptr inbounds nuw i8, ptr %29, i64 2224 - %99 = getelementptr inbounds ptr, ptr %98, i64 %43 + %99 = getelementptr inbounds nuw ptr, ptr %98, i64 %43 %100 = icmp ult i32 %24, 16 br i1 %100, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h1e23e01c6496f85aE.exit15", label %101 @@ -55006,7 +55003,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 53: ; preds = %40 %54 = getelementptr inbounds nuw i8, ptr %27, i64 712 - %55 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 + %55 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 %56 = add nuw nsw i64 %45, 1 store i64 %56, ptr %44, align 8 %57 = getelementptr inbounds nuw i8, ptr %25, i64 16 @@ -55020,7 +55017,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 59: ; preds = %._crit_edge44 %60 = getelementptr inbounds nuw i8, ptr %27, i64 232 - %61 = getelementptr inbounds ptr, ptr %60, i64 %35 + %61 = getelementptr inbounds nuw ptr, ptr %60, i64 %35 %62 = icmp ult i32 %22, 16 br i1 %62, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hab33b278a6881846E.exit15", label %63 @@ -55096,7 +55093,7 @@ define internal fastcc i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h5419 %17 = zext i32 %15 to i64 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 %19 = add nsw i64 %17, -1 - %20 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %18, i64 0, i64 %19 + %20 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %18, i64 0, i64 %19 %21 = load ptr, ptr %20, align 8, !alias.scope !14669, !noalias !14672, !nonnull !4, !align !5, !noundef !4 %22 = load ptr, ptr %21, align 8, !noalias !14674, !nonnull !4, !noundef !4 %23 = getelementptr inbounds nuw i8, ptr %22, i64 16 @@ -55127,7 +55124,7 @@ define internal fastcc i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h5419 36: ; preds = %33 %37 = getelementptr inbounds nuw i8, ptr %22, i64 2064 - %38 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %37, i64 0, i64 %27 + %38 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %37, i64 0, i64 %27 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %.val5 = load i64, ptr %0, align 8, !noundef !4 %39 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -55241,7 +55238,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !5, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -55272,7 +55269,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %20, i64 192 - %37 = getelementptr inbounds [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -55312,7 +55309,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !5, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -55343,7 +55340,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 32 - %37 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 diff --git a/bench/zed-rs/optimized/d2p6yqmr5ynfu7gufvki400r7.ll b/bench/zed-rs/optimized/d2p6yqmr5ynfu7gufvki400r7.ll index 06f27291dbd..4bcc570b680 100644 --- a/bench/zed-rs/optimized/d2p6yqmr5ynfu7gufvki400r7.ll +++ b/bench/zed-rs/optimized/d2p6yqmr5ynfu7gufvki400r7.ll @@ -6174,10 +6174,9 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 %.idx68.i = shl nuw nsw i64 %389, 3 %408 = getelementptr inbounds nuw i8, ptr %407, i64 %.idx68.i %409 = sub nuw nsw i64 %401, %389 - %410 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %406, i64 %389 - %411 = sub nsw i64 %392, %389 - %gepdiff69.i = and i64 %411, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff69.i, i64 range(i64 0, 4294967296) %409) + %410 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %406, i64 %389 + %411 = sub nuw nsw i64 %392, %389 + %.sroa.0.0.sroa.speculated.i.i.i.i = call noundef i64 @llvm.umin.i64(i64 %411, i64 range(i64 0, 4294967296) %409) %.not.i294 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i.i, 0 br i1 %.not.i294, label %.loopexit.i, label %.lr.ph.i295 @@ -6190,9 +6189,9 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 414: ; preds = %.noexc309, %.lr.ph.i295 %.val45.i = phi i64 [ %.val45.i.pre, %.lr.ph.i295 ], [ %.val41.i, %.noexc309 ] %.sroa.9.0101.i = phi i64 [ 0, %.lr.ph.i295 ], [ %415, %.noexc309 ] - %415 = add nuw nsw i64 %.sroa.9.0101.i, 1 - %416 = getelementptr inbounds nuw ptr, ptr %408, i64 %.sroa.9.0101.i - %417 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %410, i64 %.sroa.9.0101.i + %415 = add nuw i64 %.sroa.9.0101.i, 1 + %416 = getelementptr inbounds ptr, ptr %408, i64 %.sroa.9.0101.i + %417 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %410, i64 %.sroa.9.0101.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12), !noalias !1410 %.val46.i = load i64, ptr %171, align 8, !alias.scope !1405, !noalias !1408, !noundef !4 store i64 %.val45.i, ptr %12, align 8, !noalias !1410 @@ -6296,7 +6295,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 %.idx66.i = mul nuw nsw i64 %387, 152 %448 = getelementptr inbounds nuw i8, ptr %447, i64 %.idx66.i %449 = sub nuw nsw i64 %443, %387 - %450 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %446, i64 %387 + %450 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %446, i64 %387 %.idx67.i = sub nsw i64 %385, %387 %.sroa.0.0.sroa.speculated.i.i.i52.i = call noundef i64 @llvm.umin.i64(i64 %.idx67.i, i64 range(i64 0, 4294967296) %449) %.not110.i = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i52.i, 0 @@ -6487,7 +6486,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 498: ; preds = %496 %499 = zext i32 %497 to i64 %500 = add nsw i64 %499, -1 - %501 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %500 + %501 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %500 %502 = load ptr, ptr %501, align 8, !alias.scope !1522, !noalias !1525, !nonnull !4, !align !45, !noundef !4 %503 = load ptr, ptr %502, align 8, !noalias !1527, !nonnull !4, !noundef !4 %504 = getelementptr inbounds nuw i8, ptr %503, i64 16 @@ -6532,7 +6531,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 519: ; preds = %514 %520 = getelementptr inbounds nuw i8, ptr %503, i64 232 - %521 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %520, i64 0, i64 %508 + %521 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %520, i64 0, i64 %508 invoke void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E.llvm.15391037627377539542"(ptr noalias nocapture noundef nonnull sret([152 x i8]) align 8 dereferenceable(152) %64, ptr noalias noundef nonnull readonly align 8 dereferenceable(152) %521) to label %522 unwind label %225 @@ -6992,7 +6991,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 654: ; preds = %652 %655 = zext i32 %653 to i64 %656 = add nsw i64 %655, -1 - %657 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %656 + %657 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %656 %658 = load ptr, ptr %657, align 8, !alias.scope !1656, !noalias !1659, !nonnull !4, !align !45, !noundef !4 %659 = load ptr, ptr %658, align 8, !noalias !1661, !nonnull !4, !noundef !4 %660 = getelementptr inbounds nuw i8, ptr %659, i64 16 @@ -7045,7 +7044,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 677: ; preds = %670 %678 = getelementptr inbounds nuw i8, ptr %659, i64 232 - %679 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %678, i64 0, i64 %664 + %679 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %678, i64 0, i64 %664 invoke void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E.llvm.15391037627377539542"(ptr noalias nocapture noundef nonnull sret([152 x i8]) align 8 dereferenceable(152) %83, ptr noalias noundef nonnull readonly align 8 dereferenceable(152) %679) to label %680 unwind label %.critedge145.thread531.loopexit.split-lp.loopexit @@ -7158,7 +7157,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 718: ; preds = %716 %719 = zext i32 %717 to i64 %720 = add nsw i64 %719, -1 - %721 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %720 + %721 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %720 %722 = load ptr, ptr %721, align 8, !alias.scope !1667, !noalias !1670, !nonnull !4, !align !45, !noundef !4 %723 = load ptr, ptr %722, align 8, !noalias !1672, !nonnull !4, !noundef !4 %724 = getelementptr inbounds nuw i8, ptr %723, i64 16 @@ -7186,7 +7185,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 737: ; preds = %733 %738 = getelementptr inbounds nuw i8, ptr %723, i64 232 - %739 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %738, i64 0, i64 %728 + %739 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %738, i64 0, i64 %728 invoke void @"_ZN53_$LT$text..Fragment$u20$as$u20$core..clone..Clone$GT$5clone17hd9e845c4229b46f7E.llvm.15391037627377539542"(ptr noalias nocapture noundef nonnull sret([152 x i8]) align 8 dereferenceable(152) %79, ptr noalias noundef nonnull readonly align 8 dereferenceable(152) %739) to label %740 unwind label %.critedge145.thread531.loopexit.split-lp.loopexit @@ -7344,7 +7343,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 790: ; preds = %788 %791 = zext i32 %789 to i64 %792 = add nsw i64 %791, -1 - %793 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %792 + %793 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %792 %794 = load ptr, ptr %793, align 8, !alias.scope !1698, !noalias !1701, !nonnull !4, !align !45, !noundef !4 %795 = load ptr, ptr %794, align 8, !noalias !1703, !nonnull !4, !noundef !4 %796 = getelementptr inbounds nuw i8, ptr %795, i64 16 @@ -7367,7 +7366,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 807: ; preds = %805 %808 = getelementptr inbounds nuw i8, ptr %795, i64 232 - %809 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %808, i64 0, i64 %800 + %809 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %808, i64 0, i64 %800 br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$4item17ha658f9a33c553669E.exit211" 810: ; preds = %735, %878 @@ -7639,7 +7638,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 892: ; preds = %890 %893 = zext i32 %891 to i64 %894 = add nsw i64 %893, -1 - %895 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %894 + %895 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %236, i64 0, i64 %894 %896 = load ptr, ptr %895, align 8, !alias.scope !1758, !noalias !1761, !nonnull !4, !align !45, !noundef !4 %897 = load ptr, ptr %896, align 8, !noalias !1763, !nonnull !4, !noundef !4 %898 = getelementptr inbounds nuw i8, ptr %897, i64 16 @@ -7714,7 +7713,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 930: ; preds = %907 %931 = getelementptr inbounds nuw i8, ptr %897, i64 232 - %932 = getelementptr inbounds [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %931, i64 0, i64 %902 + %932 = getelementptr inbounds nuw [0 x { { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } }, { { { [4 x i64] }, i64 } }, { i32, i16, [1 x i16] }, i64, i64, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i8, [7 x i8] }], ptr %931, i64 0, i64 %902 call void @llvm.experimental.noalias.scope.decl(metadata !1772) %933 = getelementptr inbounds nuw i8, ptr %897, i64 2056 %934 = load i32, ptr %933, align 8, !noalias !1775, !noundef !4 @@ -7728,7 +7727,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 939: ; preds = %937 %940 = getelementptr inbounds nuw i8, ptr %897, i64 2064 - %941 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %940, i64 0, i64 %902 + %941 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %940, i64 0, i64 %902 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27), !noalias !1780 %.val5.i = load i64, ptr %88, align 8, !alias.scope !1772, !noalias !1781, !noundef !4 %.val6.i = load i64, ptr %171, align 8, !alias.scope !1772, !noalias !1781, !noundef !4 @@ -8193,7 +8192,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 1097: ; preds = %1085 %1098 = getelementptr inbounds nuw i8, ptr %1071, i64 2064 - %1099 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %1098, i64 0, i64 %1090 + %1099 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %1098, i64 0, i64 %1090 %1100 = add nuw nsw i64 %1090, 1 store i64 %1100, ptr %1089, align 8, !alias.scope !1853, !noalias !1856 %1101 = getelementptr inbounds nuw i8, ptr %1069, i64 16 @@ -8213,7 +8212,7 @@ define hidden void @_ZN4text6Buffer16apply_local_edit17hf788d66a0fb343dcE.llvm.1 1103: ; preds = %._crit_edge43.i %1104 = getelementptr inbounds nuw i8, ptr %1071, i64 2640 - %1105 = getelementptr inbounds ptr, ptr %1104, i64 %1080 + %1105 = getelementptr inbounds nuw ptr, ptr %1104, i64 %1080 %.val17.i = load i64, ptr %88, align 8, !alias.scope !1853, !noalias !1856, !noundef !4 %.val18.i = load i64, ptr %171, align 8, !alias.scope !1853, !noalias !1856, !noundef !4 %1106 = icmp ult i32 %1066, 16 @@ -13432,7 +13431,7 @@ define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 %20 = getelementptr inbounds nuw i8, ptr %19, i64 24 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !45, !noundef !4 %22 = load ptr, ptr %21, align 8, !nonnull !4, !noundef !4 @@ -13464,7 +13463,7 @@ define hidden noundef align 8 dereferenceable_or_null(104) ptr @"_ZN8sum_tree6cu 36: ; preds = %34 %37 = getelementptr inbounds nuw i8, ptr %22, i64 7344 - %38 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %37, i64 0, i64 %28 + %38 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %37, i64 0, i64 %28 br label %25 39: ; preds = %34 @@ -13642,10 +13641,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx97 = shl nuw nsw i64 %79, 3 %97 = getelementptr inbounds nuw i8, ptr %96, i64 %.idx97 %98 = sub nuw nsw i64 %91, %79 - %99 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 - %100 = sub nsw i64 %82, %79 - %gepdiff98 = and i64 %100, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff98, i64 range(i64 0, 4294967296) %98) + %99 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %95, i64 %79 + %100 = sub nuw nsw i64 %82, %79 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %100, i64 range(i64 0, 4294967296) %98) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -13659,9 +13657,9 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 103: ; preds = %.lr.ph, %116 %.sroa.9.0123 = phi i64 [ 0, %.lr.ph ], [ %104, %116 ] - %104 = add nuw nsw i64 %.sroa.9.0123, 1 - %105 = getelementptr inbounds nuw ptr, ptr %97, i64 %.sroa.9.0123 - %106 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 + %104 = add nuw i64 %.sroa.9.0123, 1 + %105 = getelementptr inbounds ptr, ptr %97, i64 %.sroa.9.0123 + %106 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %99, i64 %.sroa.9.0123 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull readonly align 8 dereferenceable(16) %0, i64 16, i1 false), !alias.scope !2758 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %106, ptr noalias noundef nonnull readonly align 1 %6) @@ -13753,7 +13751,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see %.idx95 = mul nuw nsw i64 %77, 56 %136 = getelementptr inbounds nuw i8, ptr %135, i64 %.idx95 %137 = sub nuw nsw i64 %130, %77 - %138 = getelementptr inbounds { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 + %138 = getelementptr inbounds nuw { { i32, i16, [1 x i16] }, i64 }, ptr %134, i64 %77 %.idx96 = sub nsw i64 %75, %77 %.sroa.0.0.sroa.speculated.i.i.i39 = call noundef i64 @llvm.umin.i64(i64 %.idx96, i64 range(i64 0, 4294967296) %137) %.not132 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i39, 0 @@ -13826,7 +13824,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 158: ; preds = %157 %159 = zext i32 %65 to i64 %160 = add nsw i64 %159, -1 - %161 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 + %161 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %64, i64 0, i64 %160 %162 = load ptr, ptr %161, align 8, !alias.scope !2800, !noalias !2803, !nonnull !4, !align !45, !noundef !4 %163 = load ptr, ptr %162, align 8, !noalias !2805, !nonnull !4, !noundef !4 %164 = getelementptr inbounds nuw i8, ptr %163, i64 16 @@ -13857,7 +13855,7 @@ define hidden noundef zeroext i1 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13see 177: ; preds = %174 %178 = getelementptr inbounds nuw i8, ptr %163, i64 712 - %179 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 + %179 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %178, i64 0, i64 %168 call void @"_ZN64_$LT$text..InsertionFragmentKey$u20$as$u20$sum_tree..Summary$GT$11add_summary17h245f0b4dfafb751aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %179, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h88256e940110891fE.exit.thread" @@ -14081,10 +14079,9 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h520445de8537deb9E.exit: ; p %.idx140 = shl nuw nsw i64 %97, 3 %117 = getelementptr inbounds nuw i8, ptr %116, i64 %.idx140 %118 = sub nuw nsw i64 %111, %97 - %119 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %115, i64 %97 - %120 = sub nsw i64 %100, %97 - %gepdiff141 = and i64 %120, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff141, i64 range(i64 0, 4294967296) %118) + %119 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %115, i64 %97 + %120 = sub nuw nsw i64 %100, %97 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %120, i64 range(i64 0, 4294967296) %118) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -14099,9 +14096,9 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h520445de8537deb9E.exit: ; p 122: ; preds = %.lr.ph, %138 %.sroa.9.0170 = phi i64 [ 0, %.lr.ph ], [ %123, %138 ] - %123 = add nuw nsw i64 %.sroa.9.0170, 1 - %124 = getelementptr inbounds nuw ptr, ptr %117, i64 %.sroa.9.0170 - %125 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %119, i64 %.sroa.9.0170 + %123 = add nuw i64 %.sroa.9.0170, 1 + %124 = getelementptr inbounds ptr, ptr %117, i64 %.sroa.9.0170 + %125 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %119, i64 %.sroa.9.0170 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) call void @llvm.experimental.noalias.scope.decl(metadata !2859) call void @llvm.experimental.noalias.scope.decl(metadata !2862) @@ -14220,7 +14217,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h520445de8537deb9E.exit: ; p %.idx138 = mul nuw nsw i64 %95, 600 %164 = getelementptr inbounds nuw i8, ptr %163, i64 %.idx138 %165 = sub nuw nsw i64 %158, %95 - %166 = getelementptr inbounds { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %162, i64 %95 + %166 = getelementptr inbounds nuw { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }, ptr %162, i64 %95 %.idx139 = sub nsw i64 %93, %95 %.sroa.0.0.sroa.speculated.i.i.i47 = call noundef i64 @llvm.umin.i64(i64 %.idx139, i64 range(i64 0, 4294967296) %165) %.not178 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i47, 0 @@ -14303,7 +14300,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h520445de8537deb9E.exit: ; p 189: ; preds = %188 %190 = zext i32 %76 to i64 %191 = add nsw i64 %190, -1 - %192 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %75, i64 0, i64 %191 + %192 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %75, i64 0, i64 %191 %193 = getelementptr inbounds nuw i8, ptr %192, i64 24 %194 = load ptr, ptr %193, align 8, !alias.scope !2935, !noalias !2938, !nonnull !4, !align !45, !noundef !4 %195 = load ptr, ptr %194, align 8, !noalias !2940, !nonnull !4, !noundef !4 @@ -14335,7 +14332,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl8try_push17h520445de8537deb9E.exit: ; p 209: ; preds = %206 %210 = getelementptr inbounds nuw i8, ptr %195, i64 7344 - %211 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %210, i64 0, i64 %200 + %211 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %210, i64 0, i64 %200 call void @"_ZN12multi_buffer91_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$usize$GT$11add_summary17he6f4f2e3c75e8caeE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(104) %211, ptr noalias noundef nonnull readonly align 1 %6) call void @"_ZN12multi_buffer137_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$core..option..Option$LT$multi_buffer..ExcerptId$GT$$GT$11add_summary17hfaddff21cf8c80feE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %85, ptr noalias noundef nonnull readonly align 8 dereferenceable(104) %211, ptr noalias noundef nonnull readonly align 1 %6) br label %"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$12item_summary17h1c8a9410262aadd1E.llvm.15391037627377539542.exit.thread" @@ -14513,10 +14510,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx68 = shl nuw nsw i64 %62, 3 %81 = getelementptr inbounds nuw i8, ptr %80, i64 %.idx68 %82 = sub nuw nsw i64 %75, %62 - %83 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %79, i64 %62 - %84 = sub nsw i64 %65, %62 - %gepdiff69 = and i64 %84, 2305843009213693951 - %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %gepdiff69, i64 range(i64 0, 4294967296) %82) + %83 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %79, i64 %62 + %84 = sub nuw nsw i64 %65, %62 + %.sroa.0.0.sroa.speculated.i.i.i = call noundef i64 @llvm.umin.i64(i64 %84, i64 range(i64 0, 4294967296) %82) %.not = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i, 0 br i1 %.not, label %.loopexit, label %.lr.ph @@ -14531,9 +14527,9 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int 88: ; preds = %.lr.ph, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17hd5448de339896e4bE.exit" %.sroa.9.0101 = phi i64 [ 0, %.lr.ph ], [ %89, %"_ZN106_$LT$sum_tree..cursor..SliceSeekAggregate$LT$T$GT$$u20$as$u20$sum_tree..cursor..SeekAggregate$LT$T$GT$$GT$9push_tree17hd5448de339896e4bE.exit" ] - %89 = add nuw nsw i64 %.sroa.9.0101, 1 - %90 = getelementptr inbounds nuw ptr, ptr %81, i64 %.sroa.9.0101 - %91 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %83, i64 %.sroa.9.0101 + %89 = add nuw i64 %.sroa.9.0101, 1 + %90 = getelementptr inbounds ptr, ptr %81, i64 %.sroa.9.0101 + %91 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %83, i64 %.sroa.9.0101 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) %.val45 = load i64, ptr %0, align 8, !noundef !4 %.val46 = load i64, ptr %39, align 8, !noundef !4 @@ -14640,7 +14636,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$13seek_int %.idx66 = mul nuw nsw i64 %60, 152 %123 = getelementptr inbounds nuw i8, ptr %122, i64 %.idx66 %124 = sub nuw nsw i64 %117, %60 - %125 = getelementptr inbounds { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %121, i64 %60 + %125 = getelementptr inbounds nuw { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }, ptr %121, i64 %60 %.idx67 = sub nsw i64 %58, %60 %.sroa.0.0.sroa.speculated.i.i.i52 = call noundef i64 @llvm.umin.i64(i64 %.idx67, i64 range(i64 0, 4294967296) %124) %.not110 = icmp eq i64 %.sroa.0.0.sroa.speculated.i.i.i52, 0 @@ -14798,7 +14794,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 53: ; preds = %40 %54 = getelementptr inbounds nuw i8, ptr %27, i64 712 - %55 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 + %55 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64 }], ptr %54, i64 0, i64 %45 %56 = add nuw nsw i64 %45, 1 store i64 %56, ptr %44, align 8 %57 = getelementptr inbounds nuw i8, ptr %25, i64 16 @@ -14812,7 +14808,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 59: ; preds = %._crit_edge44 %60 = getelementptr inbounds nuw i8, ptr %27, i64 232 - %61 = getelementptr inbounds ptr, ptr %60, i64 %35 + %61 = getelementptr inbounds nuw ptr, ptr %60, i64 %35 %62 = icmp ult i32 %22, 16 br i1 %62, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17hb6beb07b2080eff4E.exit15", label %63 @@ -14953,7 +14949,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph35: ; preds = %.preheader, %62 %48 = phi i64 [ %63, %62 ], [ %.promoted34, %.preheader ] - %49 = getelementptr inbounds [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 + %49 = getelementptr inbounds nuw [0 x { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }], ptr %37, i64 0, i64 %48 tail call void @llvm.experimental.noalias.scope.decl(metadata !3056) tail call void @llvm.experimental.noalias.scope.decl(metadata !3059) tail call void @llvm.experimental.noalias.scope.decl(metadata !3062) @@ -15012,7 +15008,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h .lr.ph: ; preds = %.preheader27, %93 %80 = phi i64 [ %94, %93 ], [ %.promoted, %.preheader27 ] - %.sroa.06.033 = getelementptr inbounds { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 + %.sroa.06.033 = getelementptr inbounds nuw { { i64, [1 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, i64, i8, [7 x i8] }, ptr %78, i64 %80 tail call void @llvm.experimental.noalias.scope.decl(metadata !3069) tail call void @llvm.experimental.noalias.scope.decl(metadata !3072) tail call void @llvm.experimental.noalias.scope.decl(metadata !3075) @@ -15044,7 +15040,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_forward17h 97: ; preds = %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h64ee62cadf8ea99aE.exit.thread" %98 = getelementptr inbounds nuw i8, ptr %29, i64 2224 - %99 = getelementptr inbounds ptr, ptr %98, i64 %43 + %99 = getelementptr inbounds nuw ptr, ptr %98, i64 %43 %100 = icmp ult i32 %24, 16 br i1 %100, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h4505508e496deb40E.exit15", label %101 @@ -15185,7 +15181,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_f 57: ; preds = %44 %58 = getelementptr inbounds nuw i8, ptr %30, i64 2064 - %59 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %58, i64 0, i64 %49 + %59 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %58, i64 0, i64 %49 %60 = add nuw nsw i64 %49, 1 store i64 %60, ptr %48, align 8 %61 = getelementptr inbounds nuw i8, ptr %28, i64 16 @@ -15199,7 +15195,7 @@ define internal fastcc void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$14search_f 63: ; preds = %._crit_edge43 %64 = getelementptr inbounds nuw i8, ptr %30, i64 2640 - %65 = getelementptr inbounds ptr, ptr %64, i64 %39 + %65 = getelementptr inbounds nuw ptr, ptr %64, i64 %39 %.val17 = load i64, ptr %0, align 8, !noundef !4 %.val18 = load i64, ptr %22, align 8, !noundef !4 %66 = icmp ult i32 %25, 16 @@ -15590,7 +15586,7 @@ _ZN8arrayvec13arrayvec_impl12ArrayVecImpl3pop17h2a060beff21026eeE.exit: ; preds 145: ; preds = %140 %146 = getelementptr inbounds nuw i8, ptr %132, i64 1392 - %147 = getelementptr inbounds [0 x ptr], ptr %146, i64 0, i64 %127 + %147 = getelementptr inbounds nuw [0 x ptr], ptr %146, i64 0, i64 %127 %148 = call noundef i64 @"_ZN12multi_buffer91_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$usize$GT$4zero17h03634c794a849ba1E"(ptr noalias noundef nonnull readonly align 1 %1), !noalias !3214 %149 = call { i64, i64 } @"_ZN12multi_buffer137_$LT$impl$u20$sum_tree..Dimension$LT$multi_buffer..ExcerptSummary$GT$$u20$for$u20$core..option..Option$LT$multi_buffer..ExcerptId$GT$$GT$4zero17he0345d0af3a2f98cE"(ptr noalias noundef nonnull readonly align 1 %1), !noalias !3214 %150 = extractvalue { i64, i64 } %149, 0 @@ -15687,7 +15683,7 @@ define internal fastcc i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h1f94 %17 = zext i32 %15 to i64 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 %19 = add nsw i64 %17, -1 - %20 = getelementptr inbounds [0 x { ptr, i64, { i64, i64 } }], ptr %18, i64 0, i64 %19 + %20 = getelementptr inbounds nuw [0 x { ptr, i64, { i64, i64 } }], ptr %18, i64 0, i64 %19 %21 = load ptr, ptr %20, align 8, !alias.scope !3244, !noalias !3247, !nonnull !4, !align !45, !noundef !4 %22 = load ptr, ptr %21, align 8, !noalias !3249, !nonnull !4, !noundef !4 %23 = getelementptr inbounds nuw i8, ptr %22, i64 16 @@ -15718,7 +15714,7 @@ define internal fastcc i64 @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17h1f94 36: ; preds = %33 %37 = getelementptr inbounds nuw i8, ptr %22, i64 2064 - %38 = getelementptr inbounds [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %37, i64 0, i64 %27 + %38 = getelementptr inbounds nuw [0 x { { i64, i64 }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 } } }], ptr %37, i64 0, i64 %27 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %.val5 = load i64, ptr %0, align 8, !noundef !4 %39 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -15774,7 +15770,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17haa57df07c318 %19 = zext i32 %17 to i64 %20 = getelementptr inbounds nuw i8, ptr %1, i64 40 %21 = add nsw i64 %19, -1 - %22 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %20, i64 0, i64 %21 + %22 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %20, i64 0, i64 %21 %23 = getelementptr inbounds nuw i8, ptr %22, i64 24 %24 = load ptr, ptr %23, align 8, !alias.scope !3250, !noalias !3253, !nonnull !4, !align !45, !noundef !4 %25 = load ptr, ptr %24, align 8, !noalias !3255, !nonnull !4, !noundef !4 @@ -15806,7 +15802,7 @@ define hidden void @"_ZN8sum_tree6cursor19Cursor$LT$T$C$D$GT$3end17haa57df07c318 39: ; preds = %36 %40 = getelementptr inbounds nuw i8, ptr %25, i64 7344 - %41 = getelementptr inbounds [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %40, i64 0, i64 %30 + %41 = getelementptr inbounds nuw [0 x { { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i64, { { { [4 x i64] }, i64 } }, i32, [1 x i32] }], ptr %40, i64 0, i64 %30 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) tail call void @llvm.experimental.noalias.scope.decl(metadata !3256) tail call void @llvm.experimental.noalias.scope.decl(metadata !3259) @@ -15980,7 +15976,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 24 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { ptr, i64, { { i32, i16, [1 x i16] }, i64 } }], ptr %17, i64 0, i64 %18 %20 = load ptr, ptr %19, align 8, !nonnull !4, !align !45, !noundef !4 %21 = load ptr, ptr %20, align 8, !nonnull !4, !noundef !4 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -16011,7 +16007,7 @@ define hidden noundef align 8 dereferenceable_or_null(56) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %21, i64 32 - %37 = getelementptr inbounds [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i32, i16, [1 x i16] }, i64, { { { [4 x i64] }, i64 } } }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 @@ -16051,7 +16047,7 @@ define hidden noundef align 8 dereferenceable_or_null(600) ptr @"_ZN8sum_tree6cu %16 = zext i32 %14 to i64 %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 %18 = add nsw i64 %16, -1 - %19 = getelementptr inbounds [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 + %19 = getelementptr inbounds nuw [0 x { { i64, { i64, [1 x i64] } }, ptr, i64 }], ptr %17, i64 0, i64 %18 %20 = getelementptr inbounds nuw i8, ptr %19, i64 24 %21 = load ptr, ptr %20, align 8, !nonnull !4, !align !45, !noundef !4 %22 = load ptr, ptr %21, align 8, !nonnull !4, !noundef !4 @@ -16083,7 +16079,7 @@ define hidden noundef align 8 dereferenceable_or_null(600) ptr @"_ZN8sum_tree6cu 36: ; preds = %34 %37 = getelementptr inbounds nuw i8, ptr %22, i64 136 - %38 = getelementptr inbounds [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %37, i64 0, i64 %28 + %38 = getelementptr inbounds nuw [0 x { { { { i64, [6 x i64] }, ptr }, { i64, ptr, ptr, ptr, ptr, ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i16, i8, [5 x i8] }, { ptr, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, { { { [4 x i64] }, i64 }, i32, [1 x i32] }, i64 }, ptr, { ptr, [1 x i64] }, { { [4 x i64] }, i64 }, ptr, i64 }, { { [56 x i8], i8, [7 x i8] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } } }, i64, i64, { { { [4 x i64] }, i64 } }, { i64, i64, { i32, i32 }, i32, i32, i32, i32, i32, [1 x i32] }, i32, i8, [3 x i8] }], ptr %37, i64 0, i64 %28 br label %25 39: ; preds = %34 @@ -16122,7 +16118,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur %15 = zext i32 %13 to i64 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = add nsw i64 %15, -1 - %18 = getelementptr inbounds [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 + %18 = getelementptr inbounds nuw [0 x { ptr, i64, {} }], ptr %16, i64 0, i64 %17 %19 = load ptr, ptr %18, align 8, !nonnull !4, !align !45, !noundef !4 %20 = load ptr, ptr %19, align 8, !nonnull !4, !noundef !4 %21 = getelementptr inbounds nuw i8, ptr %20, i64 16 @@ -16153,7 +16149,7 @@ define hidden noundef align 8 dereferenceable_or_null(96) ptr @"_ZN8sum_tree6cur 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %20, i64 192 - %37 = getelementptr inbounds [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 + %37 = getelementptr inbounds nuw [0 x { { i64, [2 x i64] }, { { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] }, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64 }], ptr %36, i64 0, i64 %27 br label %24 38: ; preds = %33 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..81b0e97a253 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/118819 # Please rebase manually # git fetch origin