181 changes: 89 additions & 92 deletions bench/git/optimized/checkout-index.ll

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions bench/git/optimized/dir.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5024,7 +5024,7 @@ while.body.i: ; preds = %if.then13.i

if.then13.i: ; preds = %while.body.preheader.i, %while.body.i
%indvars.iv.i93 = phi i64 [ %indvars.iv.next.i, %while.body.i ], [ %40, %while.body.preheader.i ]
%indvars.iv.next.i = add nsw i64 %indvars.iv.i93, 1
%indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i93, 1
%51 = trunc i64 %indvars.iv.next.i to i32
%cmp.i = icmp ugt i32 %39, %51
br i1 %cmp.i, label %while.body.i, label %while.end.i.loopexit, !llvm.loop !33
Expand Down Expand Up @@ -7821,7 +7821,7 @@ while.cond.i.preheader: ; preds = %for.body.i

while.cond.i: ; preds = %while.cond.i.preheader, %land.rhs.i
%indvars.iv = phi i64 [ %idxprom.i, %while.cond.i.preheader ], [ %indvars.iv.next, %land.rhs.i ]
%indvars.iv.next = add nsw i64 %indvars.iv, 1
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%17 = trunc i64 %indvars.iv.next to i32
%cmp13.i = icmp ugt i32 %10, %17
br i1 %cmp13.i, label %land.rhs.i, label %while.end.i
Expand Down Expand Up @@ -9537,12 +9537,12 @@ if.end: ; preds = %entry
while.body.lr.ph: ; preds = %if.end
%4 = load ptr, ptr %istate, align 8
%conv = sext i32 %len to i64
%5 = sext i32 %spec.select to i64
%5 = zext i32 %spec.select to i64
br label %while.body

while.body: ; preds = %while.body.lr.ph, %if.end27
%indvars.iv = phi i64 [ %5, %while.body.lr.ph ], [ %indvars.iv.next, %if.end27 ]
%indvars.iv.next = add nsw i64 %indvars.iv, 1
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%arrayidx = getelementptr inbounds ptr, ptr %4, i64 %indvars.iv
%6 = load ptr, ptr %arrayidx, align 8
%name = getelementptr inbounds i8, ptr %6, i64 108
Expand Down Expand Up @@ -9570,9 +9570,9 @@ land.lhs.true: ; preds = %if.end17
br i1 %cmp24, label %return, label %if.end27

if.end27: ; preds = %if.end17, %land.lhs.true
%9 = trunc i64 %indvars.iv.next to i32
%cmp5 = icmp ugt i32 %3, %9
br i1 %cmp5, label %while.body, label %return, !llvm.loop !68
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond.not = icmp eq i32 %3, %lftr.wideiv
br i1 %exitcond.not, label %return, label %while.body, !llvm.loop !68

return: ; preds = %if.end17, %land.lhs.true, %if.end9, %while.body, %if.end27, %if.end, %if.end4.i, %land.lhs.true.i, %if.then
%retval.0 = phi i32 [ 0, %if.end4.i ], [ 1, %if.then ], [ 2, %land.lhs.true.i ], [ 0, %if.end ], [ 1, %if.end17 ], [ 2, %land.lhs.true ], [ 0, %if.end9 ], [ 0, %while.body ], [ 0, %if.end27 ]
Expand Down
8 changes: 4 additions & 4 deletions bench/git/optimized/fsmonitor.ll
Original file line number Diff line number Diff line change
Expand Up @@ -935,7 +935,7 @@ if.then5: ; preds = %do.end
br i1 %cmp1243, label %for.body.preheader, label %for.end

for.body.preheader: ; preds = %if.then5
%2 = sext i32 %spec.select to i64
%2 = zext i32 %spec.select to i64
br label %for.body

for.body: ; preds = %for.body.preheader, %if.end20
Expand All @@ -956,10 +956,10 @@ if.end20: ; preds = %for.body
%7 = load i32, ptr %ce_flags, align 8
%and = and i32 %7, -2097153
store i32 %and, ptr %ce_flags, align 8
%indvars.iv.next47 = add nsw i64 %indvars.iv46, 1
%indvars.iv.next47 = add nuw nsw i64 %indvars.iv46, 1
%8 = load i32, ptr %cache_nr, align 4
%9 = trunc i64 %indvars.iv.next47 to i32
%cmp12 = icmp ugt i32 %8, %9
%9 = zext i32 %8 to i64
%cmp12 = icmp ult i64 %indvars.iv.next47, %9
br i1 %cmp12, label %for.body, label %for.end, !llvm.loop !9

for.end: ; preds = %if.end20, %for.body, %if.then5
Expand Down
4 changes: 2 additions & 2 deletions bench/git/optimized/http.ll
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ for.body: ; preds = %_.exit, %for.body
%name = getelementptr inbounds i8, ptr %6, i64 8
%7 = load ptr, ptr %name, align 8
call void (ptr, ptr, ...) @strbuf_addf(ptr noundef nonnull %buf, ptr noundef nonnull @.str.6, ptr noundef %7) #21
%indvars.iv.next = add nuw i64 %indvars.iv, 1
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%8 = load ptr, ptr %backends, align 8
%arrayidx = getelementptr inbounds ptr, ptr %8, i64 %indvars.iv.next
%9 = load ptr, ptr %arrayidx, align 8
Expand Down Expand Up @@ -4487,7 +4487,7 @@ if.then76: ; preds = %if.then69
br i1 %cmp81, label %abort, label %if.end89

if.end89: ; preds = %if.then69, %if.then76, %if.end65
%prev_posn.3 = phi i64 [ 0, %if.then76 ], [ %prev_posn.2, %if.then69 ], [ %prev_posn.2, %if.end65 ]
%prev_posn.3 = phi i64 [ 0, %if.then76 ], [ 0, %if.then69 ], [ %prev_posn.2, %if.end65 ]
%call90 = call ptr @get_active_slot()
%slot = getelementptr inbounds i8, ptr %call1, i64 2944
store ptr %call90, ptr %slot, align 8
Expand Down
1,408 changes: 704 additions & 704 deletions bench/git/optimized/merge-recursive.ll

Large diffs are not rendered by default.

185 changes: 89 additions & 96 deletions bench/git/optimized/mv.ll

Large diffs are not rendered by default.

123 changes: 62 additions & 61 deletions bench/git/optimized/object-name.ll

Large diffs are not rendered by default.

375 changes: 172 additions & 203 deletions bench/git/optimized/read-cache.ll

Large diffs are not rendered by default.

580 changes: 290 additions & 290 deletions bench/git/optimized/rm.ll

Large diffs are not rendered by default.

101 changes: 48 additions & 53 deletions bench/git/optimized/xutils.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1041,23 +1041,22 @@ for.body.preheader: ; preds = %if.end.thread, %if.
for.body: ; preds = %for.body.preheader, %for.body
%ptr.119 = phi ptr [ %incdec.ptr4, %for.body ], [ %ptr.119.ph, %for.body.preheader ]
%val.addr.118 = phi i64 [ %div, %for.body ], [ %val.addr.118.ph, %for.body.preheader ]
%rem = srem i64 %val.addr.118, 10
%rem = urem i64 %val.addr.118, 10
%arrayidx = getelementptr inbounds [11 x i8], ptr @.str.1, i64 0, i64 %rem
%0 = load i8, ptr %arrayidx, align 1
%incdec.ptr4 = getelementptr inbounds i8, ptr %ptr.119, i64 -1
store i8 %0, ptr %incdec.ptr4, align 1
%div = sdiv i64 %val.addr.118, 10
%1 = add i64 %val.addr.118, -10
%tobool = icmp ult i64 %1, -19
%div = udiv i64 %val.addr.118, 10
%tobool = icmp ugt i64 %val.addr.118, 9
%cmp3 = icmp ugt ptr %incdec.ptr4, %buf
%2 = and i1 %tobool, %cmp3
br i1 %2, label %for.body, label %for.body9, !llvm.loop !24
%1 = and i1 %tobool, %cmp3
br i1 %1, label %for.body, label %for.body9, !llvm.loop !24

for.body9: ; preds = %for.body, %for.body9
%str.021 = phi ptr [ %incdec.ptr12, %for.body9 ], [ %out, %for.body ]
%ptr.220 = phi ptr [ %incdec.ptr11, %for.body9 ], [ %incdec.ptr4, %for.body ]
%3 = phi i8 [ %.pr, %for.body9 ], [ %0, %for.body ]
store i8 %3, ptr %str.021, align 1
%2 = phi i8 [ %.pr, %for.body9 ], [ %0, %for.body ]
store i8 %2, ptr %str.021, align 1
%incdec.ptr11 = getelementptr inbounds i8, ptr %ptr.220, i64 1
%incdec.ptr12 = getelementptr inbounds i8, ptr %str.021, i64 1
%.pr = load i8, ptr %incdec.ptr11, align 1
Expand Down Expand Up @@ -1125,23 +1124,22 @@ for.body.i.i.preheader: ; preds = %if.end.i.i, %if.end
for.body.i.i: ; preds = %for.body.i.i.preheader, %for.body.i.i
%ptr.119.i.i = phi ptr [ %incdec.ptr4.i.i, %for.body.i.i ], [ %ptr.119.i.i.ph, %for.body.i.i.preheader ]
%val.addr.118.i.i = phi i64 [ %div.i.i, %for.body.i.i ], [ %val.addr.118.i.i.ph, %for.body.i.i.preheader ]
%rem.i.i = srem i64 %val.addr.118.i.i, 10
%rem.i.i = urem i64 %val.addr.118.i.i, 10
%arrayidx.i.i = getelementptr inbounds [11 x i8], ptr @.str.1, i64 0, i64 %rem.i.i
%1 = load i8, ptr %arrayidx.i.i, align 1
%incdec.ptr4.i.i = getelementptr inbounds i8, ptr %ptr.119.i.i, i64 -1
store i8 %1, ptr %incdec.ptr4.i.i, align 1
%div.i.i = sdiv i64 %val.addr.118.i.i, 10
%2 = add i64 %val.addr.118.i.i, -10
%tobool.i.i = icmp ult i64 %2, -19
%div.i.i = udiv i64 %val.addr.118.i.i, 10
%tobool.i.i = icmp ugt i64 %val.addr.118.i.i, 9
%cmp3.i.i = icmp ugt ptr %incdec.ptr4.i.i, %buf.i.i
%3 = and i1 %cmp3.i.i, %tobool.i.i
br i1 %3, label %for.body.i.i, label %for.body9.i.i, !llvm.loop !24
%2 = and i1 %tobool.i.i, %cmp3.i.i
br i1 %2, label %for.body.i.i, label %for.body9.i.i, !llvm.loop !24

for.body9.i.i: ; preds = %for.body.i.i, %for.body9.i.i
%str.021.i.i = phi ptr [ %incdec.ptr12.i.i, %for.body9.i.i ], [ %add.ptr.i, %for.body.i.i ]
%ptr.220.i.i = phi ptr [ %incdec.ptr11.i.i, %for.body9.i.i ], [ %incdec.ptr4.i.i, %for.body.i.i ]
%4 = phi i8 [ %.pr.i.i, %for.body9.i.i ], [ %1, %for.body.i.i ]
store i8 %4, ptr %str.021.i.i, align 1
%3 = phi i8 [ %.pr.i.i, %for.body9.i.i ], [ %1, %for.body.i.i ]
store i8 %3, ptr %str.021.i.i, align 1
%incdec.ptr11.i.i = getelementptr inbounds i8, ptr %ptr.220.i.i, i64 1
%incdec.ptr12.i.i = getelementptr inbounds i8, ptr %str.021.i.i, i64 1
%.pr.i.i = load i8, ptr %incdec.ptr11.i.i, align 1
Expand Down Expand Up @@ -1195,23 +1193,22 @@ for.body.i43.i.preheader: ; preds = %if.end.i38.i, %if.e
for.body.i43.i: ; preds = %for.body.i43.i.preheader, %for.body.i43.i
%ptr.119.i44.i = phi ptr [ %incdec.ptr4.i48.i, %for.body.i43.i ], [ %ptr.119.i44.i.ph, %for.body.i43.i.preheader ]
%val.addr.118.i45.i = phi i64 [ %div.i49.i, %for.body.i43.i ], [ %val.addr.118.i45.i.ph, %for.body.i43.i.preheader ]
%rem.i46.i = srem i64 %val.addr.118.i45.i, 10
%rem.i46.i = urem i64 %val.addr.118.i45.i, 10
%arrayidx.i47.i = getelementptr inbounds [11 x i8], ptr @.str.1, i64 0, i64 %rem.i46.i
%5 = load i8, ptr %arrayidx.i47.i, align 1
%4 = load i8, ptr %arrayidx.i47.i, align 1
%incdec.ptr4.i48.i = getelementptr inbounds i8, ptr %ptr.119.i44.i, i64 -1
store i8 %5, ptr %incdec.ptr4.i48.i, align 1
%div.i49.i = sdiv i64 %val.addr.118.i45.i, 10
%6 = add i64 %val.addr.118.i45.i, -10
%tobool.i50.i = icmp ult i64 %6, -19
store i8 %4, ptr %incdec.ptr4.i48.i, align 1
%div.i49.i = udiv i64 %val.addr.118.i45.i, 10
%tobool.i50.i = icmp ugt i64 %val.addr.118.i45.i, 9
%cmp3.i51.i = icmp ugt ptr %incdec.ptr4.i48.i, %buf.i35.i
%7 = and i1 %cmp3.i51.i, %tobool.i50.i
br i1 %7, label %for.body.i43.i, label %for.body9.i53.i, !llvm.loop !24
%5 = and i1 %tobool.i50.i, %cmp3.i51.i
br i1 %5, label %for.body.i43.i, label %for.body9.i53.i, !llvm.loop !24

for.body9.i53.i: ; preds = %for.body.i43.i, %for.body9.i53.i
%str.021.i54.i = phi ptr [ %incdec.ptr12.i57.i, %for.body9.i53.i ], [ %add.ptr9.i, %for.body.i43.i ]
%ptr.220.i55.i = phi ptr [ %incdec.ptr11.i56.i, %for.body9.i53.i ], [ %incdec.ptr4.i48.i, %for.body.i43.i ]
%8 = phi i8 [ %.pr.i58.i, %for.body9.i53.i ], [ %5, %for.body.i43.i ]
store i8 %8, ptr %str.021.i54.i, align 1
%6 = phi i8 [ %.pr.i58.i, %for.body9.i53.i ], [ %4, %for.body.i43.i ]
store i8 %6, ptr %str.021.i54.i, align 1
%incdec.ptr11.i56.i = getelementptr inbounds i8, ptr %ptr.220.i55.i, i64 1
%incdec.ptr12.i57.i = getelementptr inbounds i8, ptr %str.021.i54.i, i64 1
%.pr.i58.i = load i8, ptr %incdec.ptr11.i56.i, align 1
Expand Down Expand Up @@ -1269,23 +1266,22 @@ for.body.i79.i.preheader: ; preds = %if.end.i74.i, %if.e
for.body.i79.i: ; preds = %for.body.i79.i.preheader, %for.body.i79.i
%ptr.119.i80.i = phi ptr [ %incdec.ptr4.i84.i, %for.body.i79.i ], [ %ptr.119.i80.i.ph, %for.body.i79.i.preheader ]
%val.addr.118.i81.i = phi i64 [ %div.i85.i, %for.body.i79.i ], [ %val.addr.118.i81.i.ph, %for.body.i79.i.preheader ]
%rem.i82.i = srem i64 %val.addr.118.i81.i, 10
%rem.i82.i = urem i64 %val.addr.118.i81.i, 10
%arrayidx.i83.i = getelementptr inbounds [11 x i8], ptr @.str.1, i64 0, i64 %rem.i82.i
%9 = load i8, ptr %arrayidx.i83.i, align 1
%7 = load i8, ptr %arrayidx.i83.i, align 1
%incdec.ptr4.i84.i = getelementptr inbounds i8, ptr %ptr.119.i80.i, i64 -1
store i8 %9, ptr %incdec.ptr4.i84.i, align 1
%div.i85.i = sdiv i64 %val.addr.118.i81.i, 10
%10 = add i64 %val.addr.118.i81.i, -10
%tobool.i86.i = icmp ult i64 %10, -19
store i8 %7, ptr %incdec.ptr4.i84.i, align 1
%div.i85.i = udiv i64 %val.addr.118.i81.i, 10
%tobool.i86.i = icmp ugt i64 %val.addr.118.i81.i, 9
%cmp3.i87.i = icmp ugt ptr %incdec.ptr4.i84.i, %buf.i71.i
%11 = and i1 %cmp3.i87.i, %tobool.i86.i
br i1 %11, label %for.body.i79.i, label %for.body9.i89.i, !llvm.loop !24
%8 = and i1 %tobool.i86.i, %cmp3.i87.i
br i1 %8, label %for.body.i79.i, label %for.body9.i89.i, !llvm.loop !24

for.body9.i89.i: ; preds = %for.body.i79.i, %for.body9.i89.i
%str.021.i90.i = phi ptr [ %incdec.ptr12.i93.i, %for.body9.i89.i ], [ %add.ptr18.i, %for.body.i79.i ]
%ptr.220.i91.i = phi ptr [ %incdec.ptr11.i92.i, %for.body9.i89.i ], [ %incdec.ptr4.i84.i, %for.body.i79.i ]
%12 = phi i8 [ %.pr.i94.i, %for.body9.i89.i ], [ %9, %for.body.i79.i ]
store i8 %12, ptr %str.021.i90.i, align 1
%9 = phi i8 [ %.pr.i94.i, %for.body9.i89.i ], [ %7, %for.body.i79.i ]
store i8 %9, ptr %str.021.i90.i, align 1
%incdec.ptr11.i92.i = getelementptr inbounds i8, ptr %ptr.220.i91.i, i64 1
%incdec.ptr12.i93.i = getelementptr inbounds i8, ptr %str.021.i90.i, i64 1
%.pr.i94.i = load i8, ptr %incdec.ptr11.i92.i, align 1
Expand Down Expand Up @@ -1339,23 +1335,22 @@ for.body.i115.i.preheader: ; preds = %if.end.i110.i, %if.
for.body.i115.i: ; preds = %for.body.i115.i.preheader, %for.body.i115.i
%ptr.119.i116.i = phi ptr [ %incdec.ptr4.i120.i, %for.body.i115.i ], [ %ptr.119.i116.i.ph, %for.body.i115.i.preheader ]
%val.addr.118.i117.i = phi i64 [ %div.i121.i, %for.body.i115.i ], [ %val.addr.118.i117.i.ph, %for.body.i115.i.preheader ]
%rem.i118.i = srem i64 %val.addr.118.i117.i, 10
%rem.i118.i = urem i64 %val.addr.118.i117.i, 10
%arrayidx.i119.i = getelementptr inbounds [11 x i8], ptr @.str.1, i64 0, i64 %rem.i118.i
%13 = load i8, ptr %arrayidx.i119.i, align 1
%10 = load i8, ptr %arrayidx.i119.i, align 1
%incdec.ptr4.i120.i = getelementptr inbounds i8, ptr %ptr.119.i116.i, i64 -1
store i8 %13, ptr %incdec.ptr4.i120.i, align 1
%div.i121.i = sdiv i64 %val.addr.118.i117.i, 10
%14 = add i64 %val.addr.118.i117.i, -10
%tobool.i122.i = icmp ult i64 %14, -19
store i8 %10, ptr %incdec.ptr4.i120.i, align 1
%div.i121.i = udiv i64 %val.addr.118.i117.i, 10
%tobool.i122.i = icmp ugt i64 %val.addr.118.i117.i, 9
%cmp3.i123.i = icmp ugt ptr %incdec.ptr4.i120.i, %buf.i107.i
%15 = and i1 %cmp3.i123.i, %tobool.i122.i
br i1 %15, label %for.body.i115.i, label %for.body9.i125.i, !llvm.loop !24
%11 = and i1 %tobool.i122.i, %cmp3.i123.i
br i1 %11, label %for.body.i115.i, label %for.body9.i125.i, !llvm.loop !24

for.body9.i125.i: ; preds = %for.body.i115.i, %for.body9.i125.i
%str.021.i126.i = phi ptr [ %incdec.ptr12.i129.i, %for.body9.i125.i ], [ %add.ptr35.i, %for.body.i115.i ]
%ptr.220.i127.i = phi ptr [ %incdec.ptr11.i128.i, %for.body9.i125.i ], [ %incdec.ptr4.i120.i, %for.body.i115.i ]
%16 = phi i8 [ %.pr.i130.i, %for.body9.i125.i ], [ %13, %for.body.i115.i ]
store i8 %16, ptr %str.021.i126.i, align 1
%12 = phi i8 [ %.pr.i130.i, %for.body9.i125.i ], [ %10, %for.body.i115.i ]
store i8 %12, ptr %str.021.i126.i, align 1
%incdec.ptr11.i128.i = getelementptr inbounds i8, ptr %ptr.220.i127.i, i64 1
%incdec.ptr12.i129.i = getelementptr inbounds i8, ptr %str.021.i126.i, i64 1
%.pr.i130.i = load i8, ptr %incdec.ptr11.i128.i, align 1
Expand Down Expand Up @@ -1399,8 +1394,8 @@ if.then45.i: ; preds = %if.end38.i
%spec.select.i = call i64 @llvm.umin.i64(i64 %sub47.i, i64 %funclen)
%add.ptr57.i = getelementptr inbounds i8, ptr %buf.i, i64 %conv.i
call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %add.ptr57.i, ptr nonnull align 1 %func, i64 %spec.select.i, i1 false)
%17 = trunc i64 %spec.select.i to i32
%conv60.i = add i32 %inc.i, %17
%13 = trunc i64 %spec.select.i to i32
%conv60.i = add i32 %inc.i, %13
br label %xdl_format_hunk_hdr.exit

xdl_format_hunk_hdr.exit: ; preds = %if.end38.i, %if.then45.i
Expand All @@ -1414,22 +1409,22 @@ xdl_format_hunk_hdr.exit: ; preds = %if.end38.i, %if.the
%size.i = getelementptr inbounds i8, ptr %mb.i, i64 8
store i64 %conv66.i, ptr %size.i, align 8
%out_line.i = getelementptr inbounds i8, ptr %ecb, i64 16
%18 = load ptr, ptr %out_line.i, align 8
%19 = load ptr, ptr %ecb, align 8
%call67.i = call i32 %18(ptr noundef %19, ptr noundef nonnull %mb.i, i32 noundef 1) #18
%14 = load ptr, ptr %out_line.i, align 8
%15 = load ptr, ptr %ecb, align 8
%call67.i = call i32 %14(ptr noundef %15, ptr noundef nonnull %mb.i, i32 noundef 1) #18
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %mb.i)
call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %buf.i)
br label %return

if.end: ; preds = %entry
%20 = load ptr, ptr %ecb, align 8
%16 = load ptr, ptr %ecb, align 8
%tobool2.not = icmp eq i64 %c1, 0
%sub = sext i1 %tobool2.not to i64
%cond = add nsw i64 %sub, %s1
%tobool3.not = icmp eq i64 %c2, 0
%sub6 = sext i1 %tobool3.not to i64
%cond8 = add nsw i64 %sub6, %s2
%call9 = tail call i32 %0(ptr noundef %20, i64 noundef %cond, i64 noundef %c1, i64 noundef %cond8, i64 noundef %c2, ptr noundef %func, i64 noundef %funclen) #18
%call9 = tail call i32 %0(ptr noundef %16, i64 noundef %cond, i64 noundef %c1, i64 noundef %cond8, i64 noundef %c2, ptr noundef %func, i64 noundef %funclen) #18
br label %return

return: ; preds = %if.end, %xdl_format_hunk_hdr.exit
Expand Down
4 changes: 2 additions & 2 deletions bench/graphviz/optimized/gvpr.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@ gv_calloc.exit.i: ; preds = %.thread235.i, %.thr
%.sroa.2.0 = phi ptr [ null, %.lr.ph162.i ], [ %.sroa.2.4, %315 ]
%.139161.i = phi i32 [ 1, %.lr.ph162.i ], [ %.2.i, %315 ]
%.242160.i = phi i32 [ 0, %.lr.ph162.i ], [ %.343.i, %315 ]
%41 = add nsw i32 %.139161.i, 1
%42 = sext i32 %.139161.i to i64
%41 = add nuw nsw i32 %.139161.i, 1
%42 = zext nneg i32 %.139161.i to i64
%43 = getelementptr inbounds ptr, ptr %1, i64 %42
%44 = load ptr, ptr %43, align 8, !noalias !4
%45 = load i8, ptr %44, align 1, !noalias !4
Expand Down
174 changes: 87 additions & 87 deletions bench/graphviz/optimized/ns.c.ll

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bench/hermes/optimized/APFloat.cpp.ll
Original file line number Diff line number Diff line change
Expand Up @@ -10353,7 +10353,7 @@ if.end71: ; preds = %if.then69, %while.c
br i1 %tobool72.not, label %while.end, label %if.end74

if.end74: ; preds = %if.end71
%shr = ashr i32 %texp.0, 1
%shr = lshr i32 %texp.0, 1
%call75 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN4llvh5APIntmLERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %five_to_the_i, ptr noundef nonnull align 8 dereferenceable(12) %five_to_the_i) #26
br label %while.cond, !llvm.loop !70

Expand Down
4 changes: 2 additions & 2 deletions bench/hermes/optimized/dtoa.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5001,7 +5001,7 @@ if.then: ; preds = %entry

if.end: ; preds = %if.then, %entry
%b.addr.0 = phi ptr [ %call, %if.then ], [ %b, %entry ]
%shr = ashr i32 %k, 2
%shr = lshr i32 %k, 2
%tobool1.not = icmp ult i32 %k, 4
br i1 %tobool1.not, label %return, label %if.end3

Expand Down Expand Up @@ -5069,7 +5069,7 @@ if.else.i: ; preds = %if.then.i

if.end15: ; preds = %if.else.i, %if.then1.i, %if.then13, %for.cond
%b.addr.2 = phi ptr [ %b.addr.1, %for.cond ], [ %call14, %if.then13 ], [ %call14, %if.then1.i ], [ %call14, %if.else.i ]
%shr16 = ashr i32 %k.addr.0, 1
%shr16 = lshr i32 %k.addr.0, 1
%tobool17.not = icmp ult i32 %k.addr.0, 2
br i1 %tobool17.not, label %return, label %if.end19

Expand Down
14 changes: 7 additions & 7 deletions bench/hermes/optimized/zip.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -9634,9 +9634,9 @@ while.body.lr.ph.i: ; preds = %if.then10
while.body.i: ; preds = %if.else.i, %while.body.lr.ph.i
%h.011.i = phi i32 [ %sub.i, %while.body.lr.ph.i ], [ %h.1.i, %if.else.i ]
%l.010.i = phi i32 [ 0, %while.body.lr.ph.i ], [ %l.1.i, %if.else.i ]
%add.i95 = add nsw i32 %l.010.i, %h.011.i
%shr.i = ashr i32 %add.i95, 1
%idxprom.i96 = sext i32 %shr.i to i64
%add.i95 = add nuw nsw i32 %l.010.i, %h.011.i
%shr.i = lshr i32 %add.i95, 1
%idxprom.i96 = zext nneg i32 %shr.i to i64
%arrayidx2.i = getelementptr inbounds i32, ptr %4, i64 %idxprom.i96
%7 = load i32, ptr %arrayidx2.i, align 4
%idxprom.i.i = zext i32 %7 to i64
Expand Down Expand Up @@ -9692,7 +9692,7 @@ while.end.i.i: ; preds = %if.end.i.i, %while.

if.else.i: ; preds = %while.end.i.i
%cmp4.i = icmp slt i32 %cond52.i.i, 0
%add7.i = add nsw i32 %shr.i, 1
%add7.i = add nuw nsw i32 %shr.i, 1
%sub9.i = add nsw i32 %shr.i, -1
%l.1.i = select i1 %cmp4.i, i32 %add7.i, i32 %l.010.i
%h.1.i = select i1 %cmp4.i, i32 %h.011.i, i32 %sub9.i
Expand Down Expand Up @@ -17915,8 +17915,8 @@ for.inc613.i: ; preds = %if.end606.i, %while
%97 = phi i32 [ %shr608.us.i, %while.cond592.for.inc613_crit_edge.split.us.i ], [ %or589.i, %do.body576.i ], [ %shr608.i, %if.end606.i ]
%98 = phi i32 [ %sub610.us.i, %while.cond592.for.inc613_crit_edge.split.us.i ], [ %add591.i, %do.body576.i ], [ %sub610.i, %if.end606.i ]
%indvars.iv.next303.i = add nuw nsw i64 %indvars.iv302.i, 1
%exitcond306.i = icmp eq i64 %indvars.iv.next303.i, %wide.trip.count305.i
br i1 %exitcond306.i, label %for.cond616.preheader.i, label %do.body576.i, !llvm.loop !160
%exitcond306.not.i = icmp eq i64 %indvars.iv.next303.i, %wide.trip.count305.i
br i1 %exitcond306.not.i, label %for.cond616.preheader.i, label %do.body576.i, !llvm.loop !160

for.body619.i: ; preds = %if.end704.i, %for.body619.lr.ph.i
%99 = phi i32 [ %97, %for.body619.lr.ph.i ], [ %126, %if.end704.i ]
Expand Down Expand Up @@ -18797,7 +18797,7 @@ while.cond121.preheader.i: ; preds = %while.cond121.prehe
br i1 %cmp12274.i, label %land.rhs.preheader.i, label %while.end.i

land.rhs.preheader.i: ; preds = %while.cond121.preheader.i
%27 = add nuw i32 %root.385.i, 1
%27 = add nuw nsw i32 %root.385.i, 1
br label %land.rhs.i

land.rhs.i: ; preds = %while.body130.i, %land.rhs.preheader.i
Expand Down
217 changes: 109 additions & 108 deletions bench/hwloc/optimized/bitmap.ll

Large diffs are not rendered by default.

74 changes: 37 additions & 37 deletions bench/icu/optimized/alphaindex.ll
Original file line number Diff line number Diff line change
Expand Up @@ -175,26 +175,26 @@ entry:
%2 = load ptr, ptr %bucketList_.i, align 8
%count.i.i = getelementptr inbounds i8, ptr %2, i64 8
%3 = load i32, ptr %count.i.i, align 8
%cmp9.i = icmp sgt i32 %3, 1
br i1 %cmp9.i, label %while.body.i, label %_ZN6icu_7510BucketList14getBucketIndexERKNS_13UnicodeStringERKNS_8CollatorER10UErrorCode.exit
%cmp10.i = icmp sgt i32 %3, 1
br i1 %cmp10.i, label %while.body.i, label %_ZN6icu_7510BucketList14getBucketIndexERKNS_13UnicodeStringERKNS_8CollatorER10UErrorCode.exit

while.body.i: ; preds = %entry, %while.body.i
%start.011.i = phi i32 [ %start.0.div.i, %while.body.i ], [ 0, %entry ]
%limit.010.i = phi i32 [ %div.limit.0.i, %while.body.i ], [ %3, %entry ]
%add2.i = add nsw i32 %limit.010.i, %start.011.i
%div.i = sdiv i32 %add2.i, 2
%start.012.i = phi i32 [ %start.0.div8.i, %while.body.i ], [ 0, %entry ]
%limit.011.i = phi i32 [ %div8.limit.0.i, %while.body.i ], [ %3, %entry ]
%add2.i = add nuw nsw i32 %limit.011.i, %start.012.i
%div8.i = lshr i32 %add2.i, 1
%4 = load ptr, ptr %bucketList_.i, align 8
%call.i.i.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %4, i32 noundef %div.i)
%call.i.i.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %4, i32 noundef %div8.i)
%lowerBoundary_.i = getelementptr inbounds i8, ptr %call.i.i.i, i64 72
%vtable.i = load ptr, ptr %1, align 8
%vfn.i = getelementptr inbounds i8, ptr %vtable.i, i64 56
%5 = load ptr, ptr %vfn.i, align 8
%call5.i = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(64) %name, ptr noundef nonnull align 8 dereferenceable(64) %lowerBoundary_.i, ptr noundef nonnull align 4 dereferenceable(4) %errorCode)
%cmp6.i = icmp slt i32 %call5.i, 0
%div.limit.0.i = select i1 %cmp6.i, i32 %div.i, i32 %limit.010.i
%start.0.div.i = select i1 %cmp6.i, i32 %start.011.i, i32 %div.i
%add.i = add nsw i32 %start.0.div.i, 1
%cmp.i = icmp slt i32 %add.i, %div.limit.0.i
%div8.limit.0.i = select i1 %cmp6.i, i32 %div8.i, i32 %limit.011.i
%start.0.div8.i = select i1 %cmp6.i, i32 %start.012.i, i32 %div8.i
%add.i = add nuw nsw i32 %start.0.div8.i, 1
%cmp.i = icmp slt i32 %add.i, %div8.limit.0.i
br i1 %cmp.i, label %while.body.i, label %while.end.loopexit.i, !llvm.loop !4

while.end.loopexit.i: ; preds = %while.body.i
Expand All @@ -203,12 +203,12 @@ while.end.loopexit.i: ; preds = %while.body.i

_ZN6icu_7510BucketList14getBucketIndexERKNS_13UnicodeStringERKNS_8CollatorER10UErrorCode.exit: ; preds = %entry, %while.end.loopexit.i
%6 = phi ptr [ %2, %entry ], [ %.pre.i, %while.end.loopexit.i ]
%start.0.lcssa.i = phi i32 [ 0, %entry ], [ %start.0.div.i, %while.end.loopexit.i ]
%call.i.i8.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %start.0.lcssa.i)
%displayBucket_.i = getelementptr inbounds i8, ptr %call.i.i8.i, i64 144
%start.0.lcssa.i = phi i32 [ 0, %entry ], [ %start.0.div8.i, %while.end.loopexit.i ]
%call.i.i9.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %6, i32 noundef %start.0.lcssa.i)
%displayBucket_.i = getelementptr inbounds i8, ptr %call.i.i9.i, i64 144
%7 = load ptr, ptr %displayBucket_.i, align 8
%cmp10.not.i = icmp eq ptr %7, null
%spec.select.i = select i1 %cmp10.not.i, ptr %call.i.i8.i, ptr %7
%spec.select.i = select i1 %cmp10.not.i, ptr %call.i.i9.i, ptr %7
%displayIndex_.i = getelementptr inbounds i8, ptr %spec.select.i, i64 152
%8 = load i32, ptr %displayIndex_.i, align 8
ret i32 %8
Expand Down Expand Up @@ -379,28 +379,28 @@ delete.notnull: ; preds = %if.then21
br label %if.end73

if.end22: ; preds = %if.then17
br i1 %cmp23, label %if.then24, label %dynamic_cast.notnull
br i1 %cmp23, label %if.then24, label %dynamic_cast.end

if.then24: ; preds = %if.end22
store i32 7, ptr %status, align 4
br label %if.end73

dynamic_cast.notnull: ; preds = %if.end22
dynamic_cast.end: ; preds = %if.end22
%9 = call ptr @__dynamic_cast(ptr nonnull %call18, ptr nonnull @_ZTIN6icu_758CollatorE, ptr nonnull @_ZTIN6icu_7517RuleBasedCollatorE, i64 0) #16
store ptr %9, ptr %collator_, align 8
%cmp28 = icmp eq ptr %9, null
br i1 %cmp28, label %delete.notnull31, label %if.end36

delete.notnull31: ; preds = %dynamic_cast.notnull
delete.notnull31: ; preds = %dynamic_cast.end
%vtable32 = load ptr, ptr %call18, align 8
%vfn33 = getelementptr inbounds i8, ptr %vtable32, i64 8
%10 = load ptr, ptr %vfn33, align 8
call void %10(ptr noundef nonnull align 8 dereferenceable(8) %call18) #16
store i32 16, ptr %status, align 4
br label %if.end73

if.end36: ; preds = %dynamic_cast.notnull, %if.end9
%11 = phi ptr [ %9, %dynamic_cast.notnull ], [ %6, %if.end9 ]
if.end36: ; preds = %dynamic_cast.end, %if.end9
%11 = phi ptr [ %9, %dynamic_cast.end ], [ %6, %if.end9 ]
%call38 = call noundef ptr @_ZNK6icu_7517RuleBasedCollator5cloneEv(ptr noundef nonnull align 8 dereferenceable(272) %11)
%collatorPrimaryOnly_ = getelementptr inbounds i8, ptr %this, i64 64
store ptr %call38, ptr %collatorPrimaryOnly_, align 8
Expand Down Expand Up @@ -3655,7 +3655,7 @@ return: ; preds = %delete.notnull.i, %

declare noundef ptr @_ZN6icu_758Collator14createInstanceERKNS_6LocaleER10UErrorCode(ptr noundef nonnull align 8 dereferenceable(217), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

; Function Attrs: nofree nounwind memory(read)
; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #9

declare void @_ZN6icu_7517RuleBasedCollator12setAttributeE13UColAttribute18UColAttributeValueR10UErrorCode(ptr noundef nonnull align 8 dereferenceable(272), i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #4
Expand Down Expand Up @@ -4097,26 +4097,26 @@ if.end: ; preds = %entry
%3 = load ptr, ptr %bucketList_.i, align 8
%count.i.i = getelementptr inbounds i8, ptr %3, i64 8
%4 = load i32, ptr %count.i.i, align 8
%cmp9.i = icmp sgt i32 %4, 1
br i1 %cmp9.i, label %while.body.i, label %_ZN6icu_7510BucketList14getBucketIndexERKNS_13UnicodeStringERKNS_8CollatorER10UErrorCode.exit
%cmp10.i = icmp sgt i32 %4, 1
br i1 %cmp10.i, label %while.body.i, label %_ZN6icu_7510BucketList14getBucketIndexERKNS_13UnicodeStringERKNS_8CollatorER10UErrorCode.exit

while.body.i: ; preds = %if.end, %while.body.i
%start.011.i = phi i32 [ %start.0.div.i, %while.body.i ], [ 0, %if.end ]
%limit.010.i = phi i32 [ %div.limit.0.i, %while.body.i ], [ %4, %if.end ]
%add2.i = add nsw i32 %limit.010.i, %start.011.i
%div.i = sdiv i32 %add2.i, 2
%start.012.i = phi i32 [ %start.0.div8.i, %while.body.i ], [ 0, %if.end ]
%limit.011.i = phi i32 [ %div8.limit.0.i, %while.body.i ], [ %4, %if.end ]
%add2.i = add nuw nsw i32 %limit.011.i, %start.012.i
%div8.i = lshr i32 %add2.i, 1
%5 = load ptr, ptr %bucketList_.i, align 8
%call.i.i.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %5, i32 noundef %div.i)
%call.i.i.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %5, i32 noundef %div8.i)
%lowerBoundary_.i = getelementptr inbounds i8, ptr %call.i.i.i, i64 72
%vtable.i = load ptr, ptr %2, align 8
%vfn.i = getelementptr inbounds i8, ptr %vtable.i, i64 56
%6 = load ptr, ptr %vfn.i, align 8
%call5.i = tail call noundef i32 %6(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(64) %name, ptr noundef nonnull align 8 dereferenceable(64) %lowerBoundary_.i, ptr noundef nonnull align 4 dereferenceable(4) %status)
%cmp6.i = icmp slt i32 %call5.i, 0
%div.limit.0.i = select i1 %cmp6.i, i32 %div.i, i32 %limit.010.i
%start.0.div.i = select i1 %cmp6.i, i32 %start.011.i, i32 %div.i
%add.i = add nsw i32 %start.0.div.i, 1
%cmp.i3 = icmp slt i32 %add.i, %div.limit.0.i
%div8.limit.0.i = select i1 %cmp6.i, i32 %div8.i, i32 %limit.011.i
%start.0.div8.i = select i1 %cmp6.i, i32 %start.012.i, i32 %div8.i
%add.i = add nuw nsw i32 %start.0.div8.i, 1
%cmp.i3 = icmp slt i32 %add.i, %div8.limit.0.i
br i1 %cmp.i3, label %while.body.i, label %while.end.loopexit.i, !llvm.loop !4

while.end.loopexit.i: ; preds = %while.body.i
Expand All @@ -4125,12 +4125,12 @@ while.end.loopexit.i: ; preds = %while.body.i

_ZN6icu_7510BucketList14getBucketIndexERKNS_13UnicodeStringERKNS_8CollatorER10UErrorCode.exit: ; preds = %if.end, %while.end.loopexit.i
%7 = phi ptr [ %3, %if.end ], [ %.pre.i, %while.end.loopexit.i ]
%start.0.lcssa.i = phi i32 [ 0, %if.end ], [ %start.0.div.i, %while.end.loopexit.i ]
%call.i.i8.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %7, i32 noundef %start.0.lcssa.i)
%displayBucket_.i = getelementptr inbounds i8, ptr %call.i.i8.i, i64 144
%start.0.lcssa.i = phi i32 [ 0, %if.end ], [ %start.0.div8.i, %while.end.loopexit.i ]
%call.i.i9.i = tail call noundef ptr @_ZNK6icu_757UVector9elementAtEi(ptr noundef nonnull align 8 dereferenceable(40) %7, i32 noundef %start.0.lcssa.i)
%displayBucket_.i = getelementptr inbounds i8, ptr %call.i.i9.i, i64 144
%8 = load ptr, ptr %displayBucket_.i, align 8
%cmp10.not.i = icmp eq ptr %8, null
%spec.select.i = select i1 %cmp10.not.i, ptr %call.i.i8.i, ptr %8
%spec.select.i = select i1 %cmp10.not.i, ptr %call.i.i9.i, ptr %8
%displayIndex_.i = getelementptr inbounds i8, ptr %spec.select.i, i64 152
%9 = load i32, ptr %displayIndex_.i, align 8
br label %return
Expand Down Expand Up @@ -4542,7 +4542,7 @@ attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argm
attributes #6 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nofree nounwind memory(read) }
attributes #9 = { mustprogress nofree nounwind willreturn memory(read) }
attributes #10 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { noreturn nounwind uwtable "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
Expand Down
18 changes: 9 additions & 9 deletions bench/icu/optimized/bytestriebuilder.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1290,7 +1290,7 @@ entry:
%offset.0.p.i.i = tail call i32 @llvm.abs.i32(i32 %2, i1 false)
%offset.0.i.i = add nuw i32 %offset.0.p.i.i, 1
%3 = load ptr, ptr %1, align 8
%idx.ext.i.i = sext i32 %offset.0.i.i to i64
%idx.ext.i.i = zext nneg i32 %offset.0.i.i to i64
%add.ptr.i.i = getelementptr inbounds i8, ptr %3, i64 %idx.ext.i.i
%idxprom.i = sext i32 %byteIndex to i64
%arrayidx.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 %idxprom.i
Expand Down Expand Up @@ -1354,7 +1354,7 @@ _ZNK6icu_7516BytesTrieElement15getStringLengthERKNS_10CharStringE.exit: ; preds
%retval.0.i = phi i32 [ %conv.i, %if.then.i ], [ %or.i, %if.else.i ]
%offset.0.p.i.i = tail call i32 @llvm.abs.i32(i32 %2, i1 false)
%offset.0.i.i = add nuw i32 %offset.0.p.i.i, 1
%idx.ext.i.i = sext i32 %offset.0.i.i to i64
%idx.ext.i.i = zext nneg i32 %offset.0.i.i to i64
%9 = sext i32 %byteIndex to i64
%10 = zext nneg i32 %retval.0.i to i64
%11 = add i32 %byteIndex, 1
Expand All @@ -1374,7 +1374,7 @@ land.rhs: ; preds = %while.cond
%13 = load i32, ptr %arrayidx4, align 4
%offset.0.p.i.i5 = tail call i32 @llvm.abs.i32(i32 %13, i1 false)
%offset.0.i.i6 = add nuw i32 %offset.0.p.i.i5, 1
%idx.ext.i.i7 = sext i32 %offset.0.i.i6 to i64
%idx.ext.i.i7 = zext nneg i32 %offset.0.i.i6 to i64
%add.ptr.i.i8 = getelementptr inbounds i8, ptr %8, i64 %idx.ext.i.i7
%arrayidx.i10 = getelementptr inbounds i8, ptr %add.ptr.i.i8, i64 %indvars.iv.next
%14 = load i8, ptr %arrayidx.i10, align 1
Expand Down Expand Up @@ -1411,7 +1411,7 @@ do.body: ; preds = %while.end, %entry
%4 = load i32, ptr %arrayidx, align 4
%offset.0.p.i.i = tail call i32 @llvm.abs.i32(i32 %4, i1 false)
%offset.0.i.i = add nuw i32 %offset.0.p.i.i, 1
%idx.ext.i.i = sext i32 %offset.0.i.i to i64
%idx.ext.i.i = zext nneg i32 %offset.0.i.i to i64
%gep18 = getelementptr i8, ptr %invariant.gep17, i64 %idx.ext.i.i
%5 = load i8, ptr %gep18, align 1
br label %while.cond
Expand All @@ -1427,7 +1427,7 @@ land.rhs: ; preds = %while.cond
%6 = load i32, ptr %arrayidx4, align 4
%offset.0.p.i.i8 = tail call i32 @llvm.abs.i32(i32 %6, i1 false)
%offset.0.i.i9 = add nuw i32 %offset.0.p.i.i8, 1
%idx.ext.i.i10 = sext i32 %offset.0.i.i9 to i64
%idx.ext.i.i10 = zext nneg i32 %offset.0.i.i9 to i64
%gep = getelementptr i8, ptr %invariant.gep17, i64 %idx.ext.i.i10
%7 = load i8, ptr %gep, align 1
%cmp8 = icmp eq i8 %5, %7
Expand Down Expand Up @@ -1463,7 +1463,7 @@ do.body: ; preds = %do.cond, %entry
%3 = load i32, ptr %arrayidx, align 4
%offset.0.p.i.i = tail call i32 @llvm.abs.i32(i32 %3, i1 false)
%offset.0.i.i = add nuw i32 %offset.0.p.i.i, 1
%idx.ext.i.i = sext i32 %offset.0.i.i to i64
%idx.ext.i.i = zext nneg i32 %offset.0.i.i to i64
%gep12 = getelementptr i8, ptr %invariant.gep11, i64 %idx.ext.i.i
%4 = load i8, ptr %gep12, align 1
br label %while.cond
Expand All @@ -1475,7 +1475,7 @@ while.cond: ; preds = %while.cond, %do.bod
%5 = load i32, ptr %arrayidx4, align 4
%offset.0.p.i.i5 = tail call i32 @llvm.abs.i32(i32 %5, i1 false)
%offset.0.i.i6 = add nuw i32 %offset.0.p.i.i5, 1
%idx.ext.i.i7 = sext i32 %offset.0.i.i6 to i64
%idx.ext.i.i7 = zext nneg i32 %offset.0.i.i6 to i64
%gep = getelementptr i8, ptr %invariant.gep11, i64 %idx.ext.i.i7
%6 = load i8, ptr %gep, align 1
%cmp = icmp eq i8 %4, %6
Expand Down Expand Up @@ -1513,12 +1513,12 @@ while.cond: ; preds = %while.cond, %entry
%4 = load i32, ptr %arrayidx, align 4
%offset.0.p.i.i = tail call i32 @llvm.abs.i32(i32 %4, i1 false)
%offset.0.i.i = add nuw i32 %offset.0.p.i.i, 1
%idx.ext.i.i = sext i32 %offset.0.i.i to i64
%idx.ext.i.i = zext nneg i32 %offset.0.i.i to i64
%gep = getelementptr i8, ptr %invariant.gep, i64 %idx.ext.i.i
%5 = load i8, ptr %gep, align 1
%conv3 = sext i8 %5 to i32
%cmp = icmp eq i32 %conv2, %conv3
%indvars.iv.next = add i64 %indvars.iv, 1
%indvars.iv.next = add nsw i64 %indvars.iv, 1
br i1 %cmp, label %while.cond, label %while.end, !llvm.loop !10

while.end: ; preds = %while.cond
Expand Down
2 changes: 1 addition & 1 deletion bench/icu/optimized/bytestrieiterator.ll
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,7 @@ if.then32: ; preds = %if.end29
%11 = load ptr, ptr %pos_, align 8
%call42 = tail call noundef nonnull align 8 dereferenceable(60) ptr @_ZN6icu_7510CharString6appendEPKciR10UErrorCode(ptr noundef nonnull align 8 dereferenceable(60) %8, ptr noundef %11, i32 noundef %length.0, ptr noundef nonnull align 4 dereferenceable(4) %errorCode)
%12 = load ptr, ptr %pos_, align 8
%idx.ext = sext i32 %length.0 to i64
%idx.ext = zext nneg i32 %length.0 to i64
%add.ptr = getelementptr inbounds i8, ptr %12, i64 %idx.ext
store ptr %add.ptr, ptr %pos_, align 8
%13 = load i32, ptr %remainingMatchLength_, align 8
Expand Down
16 changes: 8 additions & 8 deletions bench/icu/optimized/choicfmt.ll
Original file line number Diff line number Diff line change
Expand Up @@ -882,7 +882,7 @@ if.end.lr.ph.i: ; preds = %if.end
br i1 %cmp5.i14, label %_ZN6icu_7512ChoiceFormat14findSubMessageERKNS_14MessagePatternEid.exit, label %if.end7.i

if.end.i: ; preds = %if.end17.i
%idxprom.i.i = sext i32 %inc.i to i64
%idxprom.i.i = zext nneg i32 %inc.i to i64
%arrayidx.i.i = getelementptr inbounds %"class.icu_75::MessagePattern::Part", ptr %6, i64 %idxprom.i.i
%5 = load i32, ptr %arrayidx.i.i, align 4
%cmp5.i = icmp eq i32 %5, 6
Expand All @@ -892,11 +892,11 @@ if.end7.i: ; preds = %if.end.lr.ph.i, %if
%arrayidx.i.i17 = phi ptr [ %arrayidx.i.i, %if.end.i ], [ %arrayidx.i.i13, %if.end.lr.ph.i ]
%partIndex.addr.024.i16 = phi i32 [ %inc9.i, %if.end.i ], [ 2, %if.end.lr.ph.i ]
%start..i25.i15 = phi i32 [ %start..i.i, %if.end.i ], [ %start..i21.i, %if.end.lr.ph.i ]
%inc2.i = add nsw i32 %start..i25.i15, 2
%inc2.i = add nuw nsw i32 %start..i25.i15, 2
%call8.i = tail call noundef double @_ZNK6icu_7514MessagePattern15getNumericValueERKNS0_4PartE(ptr noundef nonnull align 8 dereferenceable(127) %msgPattern, ptr noundef nonnull align 4 dereferenceable(16) %arrayidx.i.i17)
%inc9.i = add nsw i32 %start..i25.i15, 3
%inc9.i = add nuw nsw i32 %start..i25.i15, 3
%6 = load ptr, ptr %parts.i.i.i, align 8
%idxprom.i.i15.i = sext i32 %inc2.i to i64
%idxprom.i.i15.i = zext nneg i32 %inc2.i to i64
%index.i.i = getelementptr inbounds %"class.icu_75::MessagePattern::Part", ptr %6, i64 %idxprom.i.i15.i, i32 1
%7 = load i32, ptr %index.i.i, align 4
%8 = load i16, ptr %fUnion.i.i.i.i.i, align 8
Expand Down Expand Up @@ -928,11 +928,11 @@ cond.false.i: ; preds = %_ZNK6icu_7513Unicod
br i1 %cmp15.i, label %_ZN6icu_7512ChoiceFormat14findSubMessageERKNS_14MessagePatternEid.exit, label %if.end17.i

if.end17.i: ; preds = %cond.false.i, %cond.true.i
%idxprom.i.i.i = sext i32 %inc9.i to i64
%idxprom.i.i.i = zext nneg i32 %inc9.i to i64
%limitPartIndex.i.i = getelementptr inbounds %"class.icu_75::MessagePattern::Part", ptr %6, i64 %idxprom.i.i.i, i32 4
%14 = load i32, ptr %limitPartIndex.i.i, align 4
%start..i.i = tail call noundef i32 @llvm.smax.i32(i32 %14, i32 %inc9.i)
%inc.i = add nsw i32 %start..i.i, 1
%inc.i = add nuw nsw i32 %start..i.i, 1
%cmp.not.i = icmp slt i32 %inc.i, %1
br i1 %cmp.not.i, label %if.end.i, label %_ZN6icu_7512ChoiceFormat14findSubMessageERKNS_14MessagePatternEid.exit, !llvm.loop !11

Expand All @@ -945,7 +945,7 @@ _ZN6icu_7512ChoiceFormat14findSubMessageERKNS_14MessagePatternEid.exit: ; preds
br i1 %cmp.i.not, label %if.end17, label %if.then6

if.then6: ; preds = %_ZN6icu_7512ChoiceFormat14findSubMessageERKNS_14MessagePatternEid.exit
%idxprom.i = sext i32 %partIndex.addr.0.lcssa.i to i64
%idxprom.i = zext nneg i32 %partIndex.addr.0.lcssa.i to i64
%arrayidx.i = getelementptr inbounds %"class.icu_75::MessagePattern::Part", ptr %15, i64 %idxprom.i
%index.i = getelementptr inbounds i8, ptr %arrayidx.i, i64 4
%17 = load i32, ptr %index.i, align 4
Expand All @@ -957,7 +957,7 @@ if.then6: ; preds = %_ZN6icu_7512ChoiceF
%19 = load i32, ptr %limitPartIndex.i, align 4
%start..i = tail call noundef i32 @llvm.smax.i32(i32 %19, i32 %partIndex.addr.0.lcssa.i)
%msg.i = getelementptr inbounds i8, ptr %this, i64 376
%idxprom.i.i10 = sext i32 %start..i to i64
%idxprom.i.i10 = zext nneg i32 %start..i to i64
%index.i11 = getelementptr inbounds %"class.icu_75::MessagePattern::Part", ptr %15, i64 %idxprom.i.i10, i32 1
%20 = load i32, ptr %index.i11, align 4
%sub = sub nsw i32 %20, %add.i
Expand Down
12 changes: 6 additions & 6 deletions bench/icu/optimized/ctest.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1361,7 +1361,7 @@ for.body.lr.ph: ; preds = %entry

for.body: ; preds = %for.body.lr.ph, %for.inc
%i.092 = phi i32 [ 1, %for.body.lr.ph ], [ %inc250, %for.inc ]
%idxprom = sext i32 %i.092 to i64
%idxprom = zext nneg i32 %i.092 to i64
%arrayidx1 = getelementptr inbounds ptr, ptr %argv, i64 %idxprom
%1 = load ptr, ptr %arrayidx1, align 8
%2 = load i8, ptr %1, align 1
Expand Down Expand Up @@ -1450,13 +1450,13 @@ if.else72: ; preds = %if.else65

if.then78: ; preds = %if.else72
store i32 0, ptr %errorCode, align 4
%add = add nsw i32 %i.092, 1
%add = add nuw nsw i32 %i.092, 1
%cmp79 = icmp slt i32 %add, %argc
br i1 %cmp79, label %if.then81, label %if.end111

if.then81: ; preds = %if.then78
store ptr null, ptr %endPtr, align 8
%idxprom82 = sext i32 %add to i64
%idxprom82 = zext nneg i32 %add to i64
%arrayidx83 = getelementptr inbounds ptr, ptr %argv, i64 %idxprom82
%3 = load ptr, ptr %arrayidx83, align 8
%call84 = call i64 @strtol(ptr noundef %3, ptr noundef nonnull %endPtr, i32 noundef 10) #23
Expand Down Expand Up @@ -1541,7 +1541,7 @@ if.else141: ; preds = %if.else131
br i1 %cmp145, label %if.then147, label %if.else160

if.then147: ; preds = %if.else141
%inc148 = add nsw i32 %i.092, 1
%inc148 = add nuw nsw i32 %i.092, 1
%cmp149.not = icmp slt i32 %inc148, %argc
br i1 %cmp149.not, label %if.end153, label %if.then151

Expand All @@ -1550,7 +1550,7 @@ if.then151: ; preds = %if.then147
br label %return

if.end153: ; preds = %if.then147
%idxprom154 = sext i32 %inc148 to i64
%idxprom154 = zext nneg i32 %inc148 to i64
%arrayidx155 = getelementptr inbounds ptr, ptr %argv, i64 %idxprom154
%14 = load ptr, ptr %arrayidx155, align 8
store ptr %14, ptr @XML_FILE_NAME, align 8
Expand Down Expand Up @@ -1652,7 +1652,7 @@ if.else224: ; preds = %if.else216, %land.l

for.inc: ; preds = %if.end153, %if.then27, %if.then41, %if.then55, %if.then71, %if.then130, %if.then173, %if.then187, %if.then201, %if.then222, %if.then194, %if.then180, %if.then166, %if.then137, %if.then138, %if.end111, %if.then62, %if.then48, %if.else28, %if.else, %lor.lhs.false, %for.body
%i.2 = phi i32 [ %i.092, %for.body ], [ %i.092, %if.else ], [ %i.092, %lor.lhs.false ], [ %i.092, %if.then27 ], [ %i.092, %if.else28 ], [ %i.092, %if.then41 ], [ %i.092, %if.then48 ], [ %i.092, %if.then55 ], [ %i.092, %if.then62 ], [ %i.092, %if.then71 ], [ %i.1, %if.end111 ], [ %i.092, %if.then130 ], [ %i.092, %if.then137 ], [ %i.092, %if.then138 ], [ %inc148, %if.end153 ], [ %i.092, %if.then166 ], [ %i.092, %if.then173 ], [ %i.092, %if.then180 ], [ %i.092, %if.then187 ], [ %i.092, %if.then194 ], [ %i.092, %if.then201 ], [ %add223, %if.then222 ]
%inc250 = add nsw i32 %i.2, 1
%inc250 = add nuw nsw i32 %i.2, 1
%cmp = icmp slt i32 %inc250, %argc
br i1 %cmp, label %for.body, label %for.end, !llvm.loop !11

Expand Down
114 changes: 57 additions & 57 deletions bench/icu/optimized/nfrs.ll
Original file line number Diff line number Diff line change
Expand Up @@ -622,7 +622,7 @@ if.end32: ; preds = %if.else, %if.then27
%29 = load i8, ptr %fIsFractionRuleSet, align 8
%tobool33.not = icmp eq i8 %29, 0
%inc = zext i1 %tobool33.not to i64
%spec.select = add nsw i64 %defaultBaseValue.1, %inc
%spec.select = add nuw nsw i64 %defaultBaseValue.1, %inc
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
br i1 %exitcond.not, label %cleanup, label %for.body, !llvm.loop !11
Expand Down Expand Up @@ -1267,62 +1267,62 @@ while.cond.preheader.i: ; preds = %if.end8.i
%3 = load ptr, ptr %rules.i, align 8, !nonnull !10, !noundef !10
br label %while.body.i

while.body.i: ; preds = %cond.true.i25.i, %while.cond.preheader.i
%lo.046.i = phi i32 [ 0, %while.cond.preheader.i ], [ %lo.1.i, %cond.true.i25.i ]
%hi.045.i = phi i32 [ %2, %while.cond.preheader.i ], [ %hi.1.i, %cond.true.i25.i ]
%add.i = add nsw i32 %hi.045.i, %lo.046.i
%div.i = sdiv i32 %add.i, 2
%idxprom.i.i = zext i32 %div.i to i64
while.body.i: ; preds = %cond.true.i26.i, %while.cond.preheader.i
%lo.047.i = phi i32 [ 0, %while.cond.preheader.i ], [ %lo.1.i, %cond.true.i26.i ]
%hi.046.i = phi i32 [ %2, %while.cond.preheader.i ], [ %hi.1.i, %cond.true.i26.i ]
%add.i = add nuw nsw i32 %hi.046.i, %lo.047.i
%div18.i = lshr i32 %add.i, 1
%idxprom.i.i = zext nneg i32 %div18.i to i64
%arrayidx.i.i = getelementptr inbounds ptr, ptr %3, i64 %idxprom.i.i
%4 = load ptr, ptr %arrayidx.i.i, align 8
%5 = load i64, ptr %4, align 8
%cmp1643.i = icmp eq i64 %5, %number.addr.0.i
br i1 %cmp1643.i, label %if.then2, label %cond.true.i25.i
%cmp1644.i = icmp eq i64 %5, %number.addr.0.i
br i1 %cmp1644.i, label %if.then2, label %cond.true.i26.i

cond.true.i25.i: ; preds = %while.body.i
cond.true.i26.i: ; preds = %while.body.i
%cmp24.i = icmp sgt i64 %5, %number.addr.0.i
%add27.i = add nsw i32 %div.i, 1
%hi.1.i = select i1 %cmp24.i, i32 %div.i, i32 %hi.045.i
%lo.1.i = select i1 %cmp24.i, i32 %lo.046.i, i32 %add27.i
%add27.i = add nuw nsw i32 %div18.i, 1
%hi.1.i = select i1 %cmp24.i, i32 %div18.i, i32 %hi.046.i
%lo.1.i = select i1 %cmp24.i, i32 %lo.047.i, i32 %add27.i
%cmp12.i = icmp slt i32 %lo.1.i, %hi.1.i
br i1 %cmp12.i, label %while.body.i, label %while.end.i, !llvm.loop !19

while.end.i: ; preds = %cond.true.i25.i
while.end.i: ; preds = %cond.true.i26.i
%cmp30.i = icmp eq i32 %hi.1.i, 0
br i1 %cmp30.i, label %if.end3, label %_ZNK6icu_7510NFRuleListixEj.exit35.i
br i1 %cmp30.i, label %if.end3, label %_ZNK6icu_7510NFRuleListixEj.exit36.i

_ZNK6icu_7510NFRuleListixEj.exit35.i: ; preds = %while.end.i
_ZNK6icu_7510NFRuleListixEj.exit36.i: ; preds = %while.end.i
%sub34.i = add nsw i32 %hi.1.i, -1
%idxprom.i32.i = zext i32 %sub34.i to i64
%arrayidx.i33.i = getelementptr inbounds ptr, ptr %3, i64 %idxprom.i32.i
%6 = load ptr, ptr %arrayidx.i33.i, align 8
%idxprom.i33.i = zext i32 %sub34.i to i64
%arrayidx.i34.i = getelementptr inbounds ptr, ptr %3, i64 %idxprom.i33.i
%6 = load ptr, ptr %arrayidx.i34.i, align 8
%call36.i = tail call noundef signext i8 @_ZNK6icu_756NFRule14shouldRollBackEl(ptr noundef nonnull align 8 dereferenceable(112) %6, i64 noundef %number.addr.0.i)
%tobool37.not.i = icmp eq i8 %call36.i, 0
br i1 %tobool37.not.i, label %_ZNK6icu_759NFRuleSet14findNormalRuleEl.exit, label %if.then38.i

if.then38.i: ; preds = %_ZNK6icu_7510NFRuleListixEj.exit35.i
if.then38.i: ; preds = %_ZNK6icu_7510NFRuleListixEj.exit36.i
%cmp39.i = icmp eq i32 %hi.1.i, 1
br i1 %cmp39.i, label %if.end3, label %if.end41.i

if.end41.i: ; preds = %if.then38.i
%7 = load ptr, ptr %rules.i, align 8
%cmp.not.i36.i = icmp eq ptr %7, null
br i1 %cmp.not.i36.i, label %if.end3, label %cond.true.i37.i
%cmp.not.i37.i = icmp eq ptr %7, null
br i1 %cmp.not.i37.i, label %if.end3, label %cond.true.i38.i

cond.true.i37.i: ; preds = %if.end41.i
cond.true.i38.i: ; preds = %if.end41.i
%sub43.i = add nsw i32 %hi.1.i, -2
%idxprom.i38.i = zext i32 %sub43.i to i64
%arrayidx.i39.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom.i38.i
%8 = load ptr, ptr %arrayidx.i39.i, align 8
%idxprom.i39.i = zext i32 %sub43.i to i64
%arrayidx.i40.i = getelementptr inbounds ptr, ptr %7, i64 %idxprom.i39.i
%8 = load ptr, ptr %arrayidx.i40.i, align 8
br label %_ZNK6icu_759NFRuleSet14findNormalRuleEl.exit

if.end46.i: ; preds = %if.end8.i
%arrayidx48.i = getelementptr inbounds i8, ptr %this, i64 112
%9 = load ptr, ptr %arrayidx48.i, align 8
br label %_ZNK6icu_759NFRuleSet14findNormalRuleEl.exit

_ZNK6icu_759NFRuleSet14findNormalRuleEl.exit: ; preds = %if.then.i, %_ZNK6icu_7510NFRuleListixEj.exit35.i, %cond.true.i37.i, %if.end46.i
%retval.0.i = phi ptr [ %call.i, %if.then.i ], [ %9, %if.end46.i ], [ %6, %_ZNK6icu_7510NFRuleListixEj.exit35.i ], [ %8, %cond.true.i37.i ]
_ZNK6icu_759NFRuleSet14findNormalRuleEl.exit: ; preds = %if.then.i, %_ZNK6icu_7510NFRuleListixEj.exit36.i, %cond.true.i38.i, %if.end46.i
%retval.0.i = phi ptr [ %call.i, %if.then.i ], [ %9, %if.end46.i ], [ %6, %_ZNK6icu_7510NFRuleListixEj.exit36.i ], [ %8, %cond.true.i38.i ]
%tobool.not = icmp eq ptr %retval.0.i, null
br i1 %tobool.not, label %if.end3, label %if.then2

Expand Down Expand Up @@ -1375,62 +1375,62 @@ while.cond.preheader: ; preds = %if.end8
%3 = load ptr, ptr %rules, align 8, !nonnull !10, !noundef !10
br label %while.body

while.body: ; preds = %while.cond.preheader, %cond.true.i25
%lo.046 = phi i32 [ 0, %while.cond.preheader ], [ %lo.1, %cond.true.i25 ]
%hi.045 = phi i32 [ %2, %while.cond.preheader ], [ %hi.1, %cond.true.i25 ]
%add = add nsw i32 %lo.046, %hi.045
%div = sdiv i32 %add, 2
%idxprom.i = zext i32 %div to i64
while.body: ; preds = %while.cond.preheader, %cond.true.i26
%lo.047 = phi i32 [ 0, %while.cond.preheader ], [ %lo.1, %cond.true.i26 ]
%hi.046 = phi i32 [ %2, %while.cond.preheader ], [ %hi.1, %cond.true.i26 ]
%add = add nuw nsw i32 %lo.047, %hi.046
%div18 = lshr i32 %add, 1
%idxprom.i = zext nneg i32 %div18 to i64
%arrayidx.i = getelementptr inbounds ptr, ptr %3, i64 %idxprom.i
%4 = load ptr, ptr %arrayidx.i, align 8
%5 = load i64, ptr %4, align 8
%cmp1643 = icmp eq i64 %5, %number.addr.0
br i1 %cmp1643, label %return, label %cond.true.i25
%cmp1644 = icmp eq i64 %5, %number.addr.0
br i1 %cmp1644, label %return, label %cond.true.i26

cond.true.i25: ; preds = %while.body
cond.true.i26: ; preds = %while.body
%cmp24 = icmp sgt i64 %5, %number.addr.0
%add27 = add nsw i32 %div, 1
%hi.1 = select i1 %cmp24, i32 %div, i32 %hi.045
%lo.1 = select i1 %cmp24, i32 %lo.046, i32 %add27
%add27 = add nuw nsw i32 %div18, 1
%hi.1 = select i1 %cmp24, i32 %div18, i32 %hi.046
%lo.1 = select i1 %cmp24, i32 %lo.047, i32 %add27
%cmp12 = icmp slt i32 %lo.1, %hi.1
br i1 %cmp12, label %while.body, label %while.end, !llvm.loop !19

while.end: ; preds = %cond.true.i25
while.end: ; preds = %cond.true.i26
%cmp30 = icmp eq i32 %hi.1, 0
br i1 %cmp30, label %return, label %_ZNK6icu_7510NFRuleListixEj.exit35
br i1 %cmp30, label %return, label %_ZNK6icu_7510NFRuleListixEj.exit36

_ZNK6icu_7510NFRuleListixEj.exit35: ; preds = %while.end
_ZNK6icu_7510NFRuleListixEj.exit36: ; preds = %while.end
%sub34 = add nsw i32 %hi.1, -1
%idxprom.i32 = zext i32 %sub34 to i64
%arrayidx.i33 = getelementptr inbounds ptr, ptr %3, i64 %idxprom.i32
%6 = load ptr, ptr %arrayidx.i33, align 8
%idxprom.i33 = zext i32 %sub34 to i64
%arrayidx.i34 = getelementptr inbounds ptr, ptr %3, i64 %idxprom.i33
%6 = load ptr, ptr %arrayidx.i34, align 8
%call36 = tail call noundef signext i8 @_ZNK6icu_756NFRule14shouldRollBackEl(ptr noundef nonnull align 8 dereferenceable(112) %6, i64 noundef %number.addr.0)
%tobool37.not = icmp eq i8 %call36, 0
br i1 %tobool37.not, label %return, label %if.then38

if.then38: ; preds = %_ZNK6icu_7510NFRuleListixEj.exit35
if.then38: ; preds = %_ZNK6icu_7510NFRuleListixEj.exit36
%cmp39 = icmp eq i32 %hi.1, 1
br i1 %cmp39, label %return, label %if.end41

if.end41: ; preds = %if.then38
%7 = load ptr, ptr %rules, align 8
%cmp.not.i36 = icmp eq ptr %7, null
br i1 %cmp.not.i36, label %return, label %cond.true.i37
%cmp.not.i37 = icmp eq ptr %7, null
br i1 %cmp.not.i37, label %return, label %cond.true.i38

cond.true.i37: ; preds = %if.end41
cond.true.i38: ; preds = %if.end41
%sub43 = add nsw i32 %hi.1, -2
%idxprom.i38 = zext i32 %sub43 to i64
%arrayidx.i39 = getelementptr inbounds ptr, ptr %7, i64 %idxprom.i38
%8 = load ptr, ptr %arrayidx.i39, align 8
%idxprom.i39 = zext i32 %sub43 to i64
%arrayidx.i40 = getelementptr inbounds ptr, ptr %7, i64 %idxprom.i39
%8 = load ptr, ptr %arrayidx.i40, align 8
br label %return

if.end46: ; preds = %if.end8
%arrayidx48 = getelementptr inbounds i8, ptr %this, i64 112
%9 = load ptr, ptr %arrayidx48, align 8
br label %return

return: ; preds = %while.body, %cond.true.i37, %if.end41, %_ZNK6icu_7510NFRuleListixEj.exit35, %if.then38, %while.end, %if.then2, %if.end46, %if.then
%retval.0 = phi ptr [ %call, %if.then ], [ %9, %if.end46 ], [ %1, %if.then2 ], [ null, %while.end ], [ null, %if.then38 ], [ %6, %_ZNK6icu_7510NFRuleListixEj.exit35 ], [ %8, %cond.true.i37 ], [ null, %if.end41 ], [ %4, %while.body ]
return: ; preds = %while.body, %cond.true.i38, %if.end41, %_ZNK6icu_7510NFRuleListixEj.exit36, %if.then38, %while.end, %if.then2, %if.end46, %if.then
%retval.0 = phi ptr [ %call, %if.then ], [ %9, %if.end46 ], [ %1, %if.then2 ], [ null, %while.end ], [ null, %if.then38 ], [ %6, %_ZNK6icu_7510NFRuleListixEj.exit36 ], [ %8, %cond.true.i38 ], [ null, %if.end41 ], [ %4, %while.body ]
ret ptr %retval.0
}

Expand Down Expand Up @@ -1593,8 +1593,8 @@ while.body.i: ; preds = %for.body, %while.bo
%p2.022.i = phi i32 [ %inc.i, %while.body.i ], [ 0, %for.body ]
%y1.021.i = phi i64 [ %shr3.i, %while.body.i ], [ %5, %for.body ]
%inc.i = add nuw nsw i32 %p2.022.i, 1
%shr.i = ashr i64 %x1.023.i, 1
%shr3.i = ashr i64 %y1.021.i, 1
%shr.i = ashr exact i64 %x1.023.i, 1
%shr3.i = ashr exact i64 %y1.021.i, 1
%9 = and i64 %x1.023.i, 2
%cmp.i = icmp eq i64 %9, 0
%10 = and i64 %y1.021.i, 2
Expand Down
224 changes: 101 additions & 123 deletions bench/icu/optimized/package.ll

Large diffs are not rendered by default.

40 changes: 20 additions & 20 deletions bench/icu/optimized/timezone.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1870,7 +1870,7 @@ invoke.cont: ; preds = %entry
br i1 %or.cond, label %cleanup, label %for.cond.preheader

for.cond.preheader: ; preds = %invoke.cont
%div1721 = lshr i32 %call, 1
%div1118 = lshr i32 %call, 1
%fUnion.i.i.i = getelementptr inbounds i8, ptr %id, i64 8
%fLength.i5.i = getelementptr inbounds i8, ptr %copy, i64 12
%fLength.i.i = getelementptr inbounds i8, ptr %id, i64 12
Expand All @@ -1879,26 +1879,26 @@ for.cond.preheader: ; preds = %invoke.cont
br label %if.end4

lpad.loopexit: ; preds = %if.end4, %if.else.i.i
%lpad.loopexit15 = landingpad { ptr, i32 }
%lpad.loopexit16 = landingpad { ptr, i32 }
cleanup
br label %ehcleanup

lpad.loopexit.split-lp: ; preds = %entry
%lpad.loopexit.split-lp16 = landingpad { ptr, i32 }
%lpad.loopexit.split-lp17 = landingpad { ptr, i32 }
cleanup
br label %ehcleanup

if.end4: ; preds = %for.cond.preheader, %if.else
%div20 = phi i32 [ %div1721, %for.cond.preheader ], [ %div, %if.else ]
%start.019 = phi i32 [ 0, %for.cond.preheader ], [ %start.0.div, %if.else ]
%limit.018 = phi i32 [ %call, %for.cond.preheader ], [ %div.limit.0, %if.else ]
%call6 = invoke ptr @ures_getStringByIndex_75(ptr noundef %array, i32 noundef %div20, ptr noundef nonnull %len, ptr noundef nonnull %status)
%div1122 = phi i32 [ %div1118, %for.cond.preheader ], [ %div11, %if.else ]
%start.021 = phi i32 [ 0, %for.cond.preheader ], [ %start.0.div11, %if.else ]
%limit.020 = phi i32 [ %call, %for.cond.preheader ], [ %div11.limit.0, %if.else ]
%call6 = invoke ptr @ures_getStringByIndex_75(ptr noundef %array, i32 noundef %div1122, ptr noundef nonnull %len, ptr noundef nonnull %status)
to label %invoke.cont5 unwind label %lpad.loopexit

invoke.cont5: ; preds = %if.end4
%1 = load i32, ptr %status, align 4
%cmp.i12 = icmp slt i32 %1, 1
br i1 %cmp.i12, label %if.end10, label %cleanup
%cmp.i13 = icmp slt i32 %1, 1
br i1 %cmp.i13, label %if.end10, label %cleanup

if.end10: ; preds = %invoke.cont5
store ptr %call6, ptr %agg.tmp, align 8
Expand Down Expand Up @@ -1941,11 +1941,11 @@ if.else.i.i: ; preds = %invoke.cont13
%tobool.not.i.i.i = icmp eq i16 %12, 0
%13 = load ptr, ptr %fArray.i.i.i, align 8
%cond.i.i.i = select i1 %tobool.not.i.i.i, ptr %13, ptr %fBuffer.i.i.i
%call5.i.i14 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %id, i32 noundef 0, i32 noundef %cond.i.i, ptr noundef %cond.i.i.i, i32 noundef %spec.select.i.i, i32 noundef %srcLength.addr.0.i.i)
%call5.i.i15 = invoke noundef signext i8 @_ZNK6icu_7513UnicodeString9doCompareEiiPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %id, i32 noundef 0, i32 noundef %cond.i.i, ptr noundef %cond.i.i.i, i32 noundef %spec.select.i.i, i32 noundef %srcLength.addr.0.i.i)
to label %invoke.cont15 unwind label %lpad.loopexit

invoke.cont15: ; preds = %if.then.i.i, %if.else.i.i
%retval.0.i.i = phi i8 [ %conv.i.i, %if.then.i.i ], [ %call5.i.i14, %if.else.i.i ]
%retval.0.i.i = phi i8 [ %conv.i.i, %if.then.i.i ], [ %call5.i.i15, %if.else.i.i ]
%cmp17 = icmp eq i8 %retval.0.i.i, 0
br i1 %cmp17, label %cleanup, label %if.else

Expand All @@ -1958,20 +1958,20 @@ lpad12: ; preds = %if.end10

if.else: ; preds = %invoke.cont15
%cmp19 = icmp slt i8 %retval.0.i.i, 0
%div.limit.0 = select i1 %cmp19, i32 %div20, i32 %limit.018
%start.0.div = select i1 %cmp19, i32 %start.019, i32 %div20
%add = add nsw i32 %start.0.div, %div.limit.0
%div = sdiv i32 %add, 2
%cmp2 = icmp eq i32 %div20, %div
%div11.limit.0 = select i1 %cmp19, i32 %div1122, i32 %limit.020
%start.0.div11 = select i1 %cmp19, i32 %start.021, i32 %div1122
%add = add nuw nsw i32 %start.0.div11, %div11.limit.0
%div11 = lshr i32 %add, 1
%cmp2 = icmp eq i32 %div1122, %div11
br i1 %cmp2, label %cleanup, label %if.end4, !llvm.loop !13

cleanup: ; preds = %if.else, %invoke.cont5, %invoke.cont15, %invoke.cont
%retval.0 = phi i32 [ -1, %invoke.cont ], [ -1, %if.else ], [ -1, %invoke.cont5 ], [ %div20, %invoke.cont15 ]
cleanup: ; preds = %invoke.cont15, %invoke.cont5, %if.else, %invoke.cont
%retval.0 = phi i32 [ -1, %invoke.cont ], [ %div1122, %invoke.cont15 ], [ -1, %invoke.cont5 ], [ -1, %if.else ]
call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %copy) #18
ret i32 %retval.0

ehcleanup: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp, %lpad12
%.pn = phi { ptr, i32 } [ %14, %lpad12 ], [ %lpad.loopexit15, %lpad.loopexit ], [ %lpad.loopexit.split-lp16, %lpad.loopexit.split-lp ]
%.pn = phi { ptr, i32 } [ %14, %lpad12 ], [ %lpad.loopexit16, %lpad.loopexit ], [ %lpad.loopexit.split-lp17, %lpad.loopexit.split-lp ]
call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %copy) #18
resume { ptr, i32 } %.pn
}
Expand Down Expand Up @@ -4653,7 +4653,7 @@ attributes #21 = { allocsize(1) }
!9 = distinct !{!9, !10, !"_ZN6icu_7528ures_getUnicodeStringByIndexEPK15UResourceBundleiP10UErrorCode: %agg.result"}
!10 = distinct !{!10, !"_ZN6icu_7528ures_getUnicodeStringByIndexEPK15UResourceBundleiP10UErrorCode"}
!11 = distinct !{!11, !7}
!12 = !{i32 -1073741824, i32 1073741824}
!12 = !{i32 -1, i32 1073741824}
!13 = distinct !{!13, !7}
!14 = distinct !{!14, !7}
!15 = distinct !{!15, !7}
Expand Down
10 changes: 5 additions & 5 deletions bench/icu/optimized/ubidiln.ll
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,7 @@ while.end: ; preds = %land.rhs
store i32 %sub, ptr %visualLimit, align 4
%insertRemove = getelementptr inbounds i8, ptr %arrayidx49, i64 8
store i32 0, ptr %insertRemove, align 4
%indvars.iv.next185 = add nuw i64 %indvars.iv184, 1
%indvars.iv.next185 = add nuw nsw i64 %indvars.iv184, 1
br label %do.body

do.end: ; preds = %while.cond
Expand Down Expand Up @@ -1987,7 +1987,7 @@ if.end72: ; preds = %if.then67

for.inc: ; preds = %if.end64, %if.end72
%markFound.2 = phi i32 [ %inc73, %if.end72 ], [ %markFound.1, %if.end64 ]
%indvars.iv.next159 = add nuw i64 %indvars.iv158, 1
%indvars.iv.next159 = add nuw nsw i64 %indvars.iv158, 1
br label %for.cond, !llvm.loop !39

if.else77: ; preds = %if.end38
Expand Down Expand Up @@ -2130,7 +2130,7 @@ for.cond154: ; preds = %if.end151, %for.con
%visualLimit157 = getelementptr inbounds %struct.Run, ptr %9, i64 %indvars.iv161, i32 1
%34 = load i32, ptr %visualLimit157, align 4
%cmp158.not = icmp slt i32 %visualIndex.addr.0, %34
%indvars.iv.next162 = add nuw i64 %indvars.iv161, 1
%indvars.iv.next162 = add nuw nsw i64 %indvars.iv161, 1
br i1 %cmp158.not, label %if.end185.loopexit, label %for.cond154, !llvm.loop !42

for.cond164: ; preds = %for.cond164.outer, %lor.lhs.false174
Expand Down Expand Up @@ -2945,8 +2945,8 @@ while.end: ; preds = %while.body

if.then12: ; preds = %while.end
%inc10 = add nsw i32 %spec.select, 1
%conv = sext i32 %inc10 to i64
%mul = shl nsw i64 %conv, 2
%conv = zext nneg i32 %inc10 to i64
%mul = shl nuw nsw i64 %conv, 2
tail call void @llvm.memset.p0.i64(ptr nonnull align 4 %destMap, i8 -1, i64 %mul, i1 false)
br label %while.body18.preheader

Expand Down
2 changes: 1 addition & 1 deletion bench/icu/optimized/ucharstrieiterator.ll
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ if.then21: ; preds = %if.end18
invoke.cont33: ; preds = %if.then21
tail call void asm sideeffect "", "rm,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr %9) #6, !srcloc !4
%10 = load ptr, ptr %pos_, align 8
%idx.ext = sext i32 %length.0 to i64
%idx.ext = zext nneg i32 %length.0 to i64
%add.ptr = getelementptr inbounds i16, ptr %10, i64 %idx.ext
store ptr %add.ptr, ptr %pos_, align 8
%11 = load i32, ptr %remainingMatchLength_, align 8
Expand Down
312 changes: 155 additions & 157 deletions bench/icu/optimized/ucmndata.ll

Large diffs are not rendered by default.

78 changes: 39 additions & 39 deletions bench/icu/optimized/uhash.ll

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bench/icu/optimized/uloc_tag.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5082,7 +5082,7 @@ if.then58.i: ; preds = %if.then50.i

invoke.cont59.i: ; preds = %if.then58.i
%add60.i = add nuw nsw i32 %sub.i, 1
%conv61.i = sext i32 %add60.i to i64
%conv61.i = zext nneg i32 %add60.i to i64
%call63.i = invoke noalias ptr @uprv_malloc_75(i64 noundef %conv61.i) #14
to label %invoke.cont62.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.i

Expand Down
889 changes: 446 additions & 443 deletions bench/icu/optimized/umutablecptrie.ll

Large diffs are not rendered by default.

82 changes: 41 additions & 41 deletions bench/icu/optimized/uniset.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2030,14 +2030,14 @@ if.else.i: ; preds = %if.else.i, %if.else
%shr16.i = phi i32 [ %shr.i, %if.else.i ], [ %shr12.i, %if.else.preheader.i ]
%hi.015.i = phi i32 [ %shr.hi.0.i, %if.else.i ], [ %sub.i, %if.else.preheader.i ]
%lo.014.i = phi i32 [ %lo.0.shr.i, %if.else.i ], [ 0, %if.else.preheader.i ]
%idxprom12.i = sext i32 %shr16.i to i64
%idxprom12.i = zext nneg i32 %shr16.i to i64
%arrayidx13.i = getelementptr inbounds i32, ptr %4, i64 %idxprom12.i
%10 = load i32, ptr %arrayidx13.i, align 4
%cmp14.i = icmp sgt i32 %10, %c
%lo.0.shr.i = select i1 %cmp14.i, i32 %lo.014.i, i32 %shr16.i
%shr.hi.0.i = select i1 %cmp14.i, i32 %shr16.i, i32 %hi.015.i
%add.i = add nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = ashr i32 %add.i, 1
%add.i = add nuw nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = lshr i32 %add.i, 1
%cmp9.i = icmp eq i32 %shr.i, %lo.0.shr.i
br i1 %cmp9.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit, label %if.else.i, !llvm.loop !9

Expand Down Expand Up @@ -2086,14 +2086,14 @@ if.else: ; preds = %if.else.preheader,
%shr16 = phi i32 [ %shr, %if.else ], [ %shr12, %if.else.preheader ]
%hi.015 = phi i32 [ %shr.hi.0, %if.else ], [ %sub, %if.else.preheader ]
%lo.014 = phi i32 [ %lo.0.shr, %if.else ], [ 0, %if.else.preheader ]
%idxprom12 = sext i32 %shr16 to i64
%idxprom12 = zext nneg i32 %shr16 to i64
%arrayidx13 = getelementptr inbounds i32, ptr %0, i64 %idxprom12
%6 = load i32, ptr %arrayidx13, align 4
%cmp14 = icmp sgt i32 %6, %c
%lo.0.shr = select i1 %cmp14, i32 %lo.014, i32 %shr16
%shr.hi.0 = select i1 %cmp14, i32 %shr16, i32 %hi.015
%add = add nsw i32 %shr.hi.0, %lo.0.shr
%shr = ashr i32 %add, 1
%add = add nuw nsw i32 %shr.hi.0, %lo.0.shr
%shr = lshr i32 %add, 1
%cmp9 = icmp eq i32 %shr, %lo.0.shr
br i1 %cmp9, label %return, label %if.else, !llvm.loop !9

Expand Down Expand Up @@ -2136,14 +2136,14 @@ if.else.i: ; preds = %if.else.i, %if.else
%shr16.i = phi i32 [ %shr.i, %if.else.i ], [ %shr12.i, %if.else.preheader.i ]
%hi.015.i = phi i32 [ %shr.hi.0.i, %if.else.i ], [ %sub.i, %if.else.preheader.i ]
%lo.014.i = phi i32 [ %lo.0.shr.i, %if.else.i ], [ 0, %if.else.preheader.i ]
%idxprom12.i = sext i32 %shr16.i to i64
%idxprom12.i = zext nneg i32 %shr16.i to i64
%arrayidx13.i = getelementptr inbounds i32, ptr %0, i64 %idxprom12.i
%6 = load i32, ptr %arrayidx13.i, align 4
%cmp14.i = icmp sgt i32 %6, %start
%lo.0.shr.i = select i1 %cmp14.i, i32 %lo.014.i, i32 %shr16.i
%shr.hi.0.i = select i1 %cmp14.i, i32 %shr16.i, i32 %hi.015.i
%add.i = add nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = ashr i32 %add.i, 1
%add.i = add nuw nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = lshr i32 %add.i, 1
%cmp9.i = icmp eq i32 %shr.i, %lo.0.shr.i
br i1 %cmp9.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit, label %if.else.i, !llvm.loop !9

Expand Down Expand Up @@ -2275,14 +2275,14 @@ if.else.i.i: ; preds = %if.else.i.i, %if.el
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.else.preheader.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.else.preheader.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.else.preheader.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %11, i64 %idxprom12.i.i
%17 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %17, %retval.0.i.ph
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down Expand Up @@ -2455,14 +2455,14 @@ if.else.i.i: ; preds = %if.end.i.i, %if.els
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.end.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.end.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.end.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %2, i64 %idxprom12.i.i
%22 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %22, %18
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down Expand Up @@ -2737,14 +2737,14 @@ if.else.i.i: ; preds = %if.else.i.i, %if.el
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.else.preheader.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.else.preheader.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.else.preheader.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %12, i64 %idxprom12.i.i
%18 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %18, %c.0
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down Expand Up @@ -2803,14 +2803,14 @@ if.else.i: ; preds = %if.else.i, %if.else
%shr16.i = phi i32 [ %shr.i, %if.else.i ], [ %shr12.i, %if.else.preheader.i ]
%hi.015.i = phi i32 [ %shr.hi.0.i, %if.else.i ], [ %sub.i, %if.else.preheader.i ]
%lo.014.i = phi i32 [ %lo.0.shr.i, %if.else.i ], [ 0, %if.else.preheader.i ]
%idxprom12.i = sext i32 %shr16.i to i64
%idxprom12.i = zext nneg i32 %shr16.i to i64
%arrayidx13.i = getelementptr inbounds i32, ptr %0, i64 %idxprom12.i
%6 = load i32, ptr %arrayidx13.i, align 4
%cmp14.i = icmp sgt i32 %6, %start
%lo.0.shr.i = select i1 %cmp14.i, i32 %lo.014.i, i32 %shr16.i
%shr.hi.0.i = select i1 %cmp14.i, i32 %shr16.i, i32 %hi.015.i
%add.i = add nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = ashr i32 %add.i, 1
%add.i = add nuw nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = lshr i32 %add.i, 1
%cmp9.i = icmp eq i32 %shr.i, %lo.0.shr.i
br i1 %cmp9.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit, label %if.else.i, !llvm.loop !9

Expand Down Expand Up @@ -2966,14 +2966,14 @@ if.else.i.i: ; preds = %if.end.i.i, %if.els
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.end.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.end.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.end.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %2, i64 %idxprom12.i.i
%25 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %25, %21
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down Expand Up @@ -3312,14 +3312,14 @@ if.else.i.i: ; preds = %if.else.i.i, %if.el
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.else.preheader.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.else.preheader.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.else.preheader.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %5, i64 %idxprom12.i.i
%11 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %11, 65535
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down Expand Up @@ -3837,7 +3837,7 @@ if.then11: ; preds = %if.end5
br label %return

if.end12: ; preds = %if.end5
%indvars.iv.next = add nuw i64 %indvars.iv, 2
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 2
%sub13 = sub i32 %n.015, %.pn
%add14 = add i32 %sub13, %3
%arrayidx = getelementptr inbounds i32, ptr %0, i64 %indvars.iv.next
Expand Down Expand Up @@ -4495,14 +4495,14 @@ if.else.i18: ; preds = %if.else.i18, %if.el
%shr16.i = phi i32 [ %shr.i, %if.else.i18 ], [ %shr12.i, %if.else.preheader.i ]
%hi.015.i = phi i32 [ %shr.hi.0.i, %if.else.i18 ], [ %sub.i, %if.else.preheader.i ]
%lo.014.i = phi i32 [ %lo.0.shr.i, %if.else.i18 ], [ 0, %if.else.preheader.i ]
%idxprom12.i = sext i32 %shr16.i to i64
%idxprom12.i = zext nneg i32 %shr16.i to i64
%arrayidx13.i = getelementptr inbounds i32, ptr %0, i64 %idxprom12.i
%6 = load i32, ptr %arrayidx13.i, align 4
%cmp14.i = icmp sgt i32 %6, %c.addr.0
%lo.0.shr.i = select i1 %cmp14.i, i32 %lo.014.i, i32 %shr16.i
%shr.hi.0.i = select i1 %cmp14.i, i32 %shr16.i, i32 %hi.015.i
%add.i = add nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = ashr i32 %add.i, 1
%add.i = add nuw nsw i32 %shr.hi.0.i, %lo.0.shr.i
%shr.i = lshr i32 %add.i, 1
%cmp9.i = icmp eq i32 %shr.i, %lo.0.shr.i
br i1 %cmp9.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit, label %if.else.i18, !llvm.loop !9

Expand Down Expand Up @@ -6924,7 +6924,7 @@ for.body: ; preds = %for.body.preheader,
for.body32: ; preds = %for.body32.lr.ph, %for.body32
%indvars.iv60 = phi i64 [ %12, %for.body32.lr.ph ], [ %indvars.iv.next61, %for.body32 ]
%18 = sub nuw nsw i64 %indvars.iv60, %13
%19 = shl nsw i64 %18, 1
%19 = shl nuw nsw i64 %18, 1
%gep68 = getelementptr i16, ptr %invariant.gep67, i64 %19
%20 = load i16, ptr %gep68, align 2
%conv39 = zext i16 %20 to i32
Expand Down Expand Up @@ -8270,14 +8270,14 @@ if.else.i.i: ; preds = %if.else.i.i, %if.el
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.else.preheader.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.else.preheader.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.else.preheader.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %13, i64 %idxprom12.i.i
%19 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %19, %c.0
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down Expand Up @@ -8572,14 +8572,14 @@ if.else.i.i: ; preds = %if.else.i.i, %if.el
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.else.preheader.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.else.preheader.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.else.preheader.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %18, i64 %idxprom12.i.i
%24 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %24, %c.2
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down Expand Up @@ -8774,14 +8774,14 @@ if.else.i.i: ; preds = %if.else.i.i, %if.el
%shr16.i.i = phi i32 [ %shr.i.i, %if.else.i.i ], [ %shr12.i.i, %if.else.preheader.i.i ]
%hi.015.i.i = phi i32 [ %shr.hi.0.i.i, %if.else.i.i ], [ %sub.i.i, %if.else.preheader.i.i ]
%lo.014.i.i = phi i32 [ %lo.0.shr.i.i, %if.else.i.i ], [ 0, %if.else.preheader.i.i ]
%idxprom12.i.i = sext i32 %shr16.i.i to i64
%idxprom12.i.i = zext nneg i32 %shr16.i.i to i64
%arrayidx13.i.i = getelementptr inbounds i32, ptr %13, i64 %idxprom12.i.i
%19 = load i32, ptr %arrayidx13.i.i, align 4
%cmp14.i.i = icmp sgt i32 %19, %c.0
%lo.0.shr.i.i = select i1 %cmp14.i.i, i32 %lo.014.i.i, i32 %shr16.i.i
%shr.hi.0.i.i = select i1 %cmp14.i.i, i32 %shr16.i.i, i32 %hi.015.i.i
%add.i.i = add nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = ashr i32 %add.i.i, 1
%add.i.i = add nuw nsw i32 %shr.hi.0.i.i, %lo.0.shr.i.i
%shr.i.i = lshr i32 %add.i.i, 1
%cmp9.i.i = icmp eq i32 %shr.i.i, %lo.0.shr.i.i
br i1 %cmp9.i.i, label %_ZNK6icu_7510UnicodeSet13findCodePointEi.exit.i, label %if.else.i.i, !llvm.loop !9

Expand Down
34 changes: 17 additions & 17 deletions bench/icu/optimized/units_data.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2262,9 +2262,9 @@ while.body.i: ; preds = %_ZNK6icu_755units22
%7 = phi i8 [ 0, %while.body.lr.ph.i ], [ %13, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i ]
%start.09.i = phi i32 [ 0, %while.body.lr.ph.i ], [ %spec.select6.i, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i ]
%end.08.i = phi i32 [ %1, %while.body.lr.ph.i ], [ %spec.select.i, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i ]
%add.i = add nsw i32 %end.08.i, %start.09.i
%div.i = sdiv i32 %add.i, 2
%conv.i19 = sext i32 %div.i to i64
%add.i = add nuw nsw i32 %end.08.i, %start.09.i
%div11.i = lshr i32 %add.i, 1
%conv.i19 = zext nneg i32 %div11.i to i64
%arrayidx.i.i.i = getelementptr inbounds ptr, ptr %2, i64 %conv.i19
%8 = load ptr, ptr %arrayidx.i.i.i, align 8
%category.i.i = getelementptr inbounds i8, ptr %8, i64 8
Expand Down Expand Up @@ -2292,8 +2292,8 @@ _ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i: ; pred
%13 = phi i8 [ 1, %if.end16.i.i ], [ 1, %if.end.i.i ], [ %7, %while.body.i ]
%cmp.110.i.i = phi i32 [ %call15.i.i, %if.end16.i.i ], [ %call9.i.i, %if.end.i.i ], [ %call4.i.i, %while.body.i ]
%cmp5.i = icmp slt i32 %cmp.110.i.i, 0
%add7.i = add nsw i32 %div.i, 1
%spec.select.i = select i1 %cmp5.i, i32 %end.08.i, i32 %div.i
%add7.i = add nuw nsw i32 %div11.i, 1
%spec.select.i = select i1 %cmp5.i, i32 %end.08.i, i32 %div11.i
%spec.select6.i = select i1 %cmp5.i, i32 %add7.i, i32 %start.09.i
%cmp.i20 = icmp slt i32 %spec.select6.i, %spec.select.i
br i1 %cmp.i20, label %while.body.i, label %if.end9, !llvm.loop !20
Expand Down Expand Up @@ -2389,9 +2389,9 @@ while.body.i33: ; preds = %_ZNK6icu_755units22
%25 = phi i8 [ 0, %while.body.lr.ph.i28 ], [ %30, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i43 ]
%start.09.i34 = phi i32 [ 0, %while.body.lr.ph.i28 ], [ %spec.select6.i48, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i43 ]
%end.08.i35 = phi i32 [ %20, %while.body.lr.ph.i28 ], [ %spec.select.i47, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i43 ]
%add.i36 = add nsw i32 %end.08.i35, %start.09.i34
%div.i37 = sdiv i32 %add.i36, 2
%conv.i38 = sext i32 %div.i37 to i64
%add.i36 = add nuw nsw i32 %end.08.i35, %start.09.i34
%div11.i37 = lshr i32 %add.i36, 1
%conv.i38 = zext nneg i32 %div11.i37 to i64
%arrayidx.i.i.i39 = getelementptr inbounds ptr, ptr %21, i64 %conv.i38
%26 = load ptr, ptr %arrayidx.i.i.i39, align 8
%category.i.i40 = getelementptr inbounds i8, ptr %26, i64 8
Expand All @@ -2418,8 +2418,8 @@ _ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit.i43: ; pr
%30 = phi i8 [ 1, %if.end16.i.i54 ], [ %25, %if.end.i.i50 ], [ %25, %while.body.i33 ]
%cmp.110.i.i44 = phi i32 [ %call15.i.i56, %if.end16.i.i54 ], [ %call9.i.i52, %if.end.i.i50 ], [ %call4.i.i41, %while.body.i33 ]
%cmp5.i45 = icmp slt i32 %cmp.110.i.i44, 0
%add7.i46 = add nsw i32 %div.i37, 1
%spec.select.i47 = select i1 %cmp5.i45, i32 %end.08.i35, i32 %div.i37
%add7.i46 = add nuw nsw i32 %div11.i37, 1
%spec.select.i47 = select i1 %cmp5.i45, i32 %end.08.i35, i32 %div11.i37
%spec.select6.i48 = select i1 %cmp5.i45, i32 %add7.i46, i32 %start.09.i34
%cmp.i49 = icmp slt i32 %spec.select6.i48, %spec.select.i47
br i1 %cmp.i49, label %while.body.i33, label %invoke.cont38, !llvm.loop !20
Expand Down Expand Up @@ -2467,7 +2467,7 @@ cleanup.sink.split: ; preds = %if.else, %if.end61,
br label %cleanup

cleanup: ; preds = %if.end16.i.i, %if.end37, %if.end16.i.i54, %cleanup.sink.split, %if.end, %if.end61
%retval.0 = phi i32 [ %call60, %if.end61 ], [ -1, %if.end ], [ -1, %cleanup.sink.split ], [ %div.i37, %if.end16.i.i54 ], [ -1, %if.end37 ], [ %div.i, %if.end16.i.i ]
%retval.0 = phi i32 [ %call60, %if.end61 ], [ -1, %if.end ], [ -1, %cleanup.sink.split ], [ %div11.i37, %if.end16.i.i54 ], [ -1, %if.end37 ], [ %div11.i, %if.end16.i.i ]
%region.i64 = getelementptr inbounds i8, ptr %desired, i64 136
call void @_ZN6icu_7515MaybeStackArrayIcLi40EED1Ev(ptr noundef nonnull align 8 dereferenceable(53) %region.i64) #15
%usage.i65 = getelementptr inbounds i8, ptr %desired, i64 72
Expand Down Expand Up @@ -3833,9 +3833,9 @@ while.body.lr.ph: ; preds = %if.end
while.body: ; preds = %while.body.lr.ph, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit
%start.09 = phi i32 [ 0, %while.body.lr.ph ], [ %spec.select6, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit ]
%end.08 = phi i32 [ %0, %while.body.lr.ph ], [ %spec.select, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit ]
%add = add nsw i32 %start.09, %end.08
%div = sdiv i32 %add, 2
%conv = sext i32 %div to i64
%add = add nuw nsw i32 %start.09, %end.08
%div11 = lshr i32 %add, 1
%conv = zext nneg i32 %div11 to i64
%1 = load ptr, ptr %fPool.i, align 8
%arrayidx.i.i = getelementptr inbounds ptr, ptr %1, i64 %conv
%2 = load ptr, ptr %arrayidx.i.i, align 8
Expand Down Expand Up @@ -3871,14 +3871,14 @@ if.else.thread: ; preds = %if.end16.i
_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit: ; preds = %while.body, %if.end.i, %if.end16.i
%cmp.110.i = phi i32 [ %call15.i, %if.end16.i ], [ %call9.i, %if.end.i ], [ %call4.i, %while.body ]
%cmp5 = icmp slt i32 %cmp.110.i, 0
%add7 = add nsw i32 %div, 1
%spec.select = select i1 %cmp5, i32 %end.08, i32 %div
%add7 = add nuw nsw i32 %div11, 1
%spec.select = select i1 %cmp5, i32 %end.08, i32 %div11
%spec.select6 = select i1 %cmp5, i32 %add7, i32 %start.09
%cmp = icmp slt i32 %spec.select6, %spec.select
br i1 %cmp, label %while.body, label %return, !llvm.loop !20

return: ; preds = %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit, %if.end, %if.else.thread, %entry
%retval.0 = phi i32 [ -1, %entry ], [ %div, %if.else.thread ], [ -1, %if.end ], [ -1, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit ]
%retval.0 = phi i32 [ -1, %entry ], [ %div11, %if.else.thread ], [ -1, %if.end ], [ -1, %_ZNK6icu_755units22UnitPreferenceMetadata9compareToERKS1_PbS4_S4_.exit ]
ret i32 %retval.0
}

Expand Down
Loading