42 changes: 21 additions & 21 deletions bench/bullet3/optimized/btDeformableMultiBodyDynamicsWorld.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2661,8 +2661,8 @@ for.cond24.preheader.for.inc66_crit_edge: ; preds = %for.cond24.preheade
br label %for.inc66

for.body28.lr.ph: ; preds = %for.cond24.preheader
%27 = trunc i64 %indvars.iv241 to i32
%28 = trunc i64 %indvars.iv241 to i32
%27 = trunc nuw nsw i64 %indvars.iv241 to i32
%28 = trunc nuw nsw i64 %indvars.iv241 to i32
br label %for.body28

for.body28: ; preds = %for.body28.lr.ph, %for.inc63
Expand Down Expand Up @@ -2713,7 +2713,7 @@ while.body.i: ; preds = %land.rhs.i
br i1 %exitcond.not.i, label %for.inc.i, label %land.rhs.i, !llvm.loop !20

land.lhs.true.i: ; preds = %land.rhs.i
%36 = trunc i64 %indvars.iv.i55 to i32
%36 = trunc nsw i64 %indvars.iv.i55 to i32
%sext.i = shl i64 %indvars.iv.i55, 32
%idxprom.i21.i = ashr exact i64 %sext.i, 32
%arrayidx.i22.i = getelementptr inbounds i32, ptr %31, i64 %idxprom.i21.i
Expand Down Expand Up @@ -2781,7 +2781,7 @@ while.body.i104: ; preds = %land.rhs.i86
br i1 %exitcond.not.i107, label %for.inc.i79, label %land.rhs.i86, !llvm.loop !20

land.lhs.true.i90: ; preds = %land.rhs.i86
%50 = trunc i64 %indvars.iv.i87 to i32
%50 = trunc nsw i64 %indvars.iv.i87 to i32
%sext.i91 = shl i64 %indvars.iv.i87, 32
%idxprom.i21.i92 = ashr exact i64 %sext.i91, 32
%arrayidx.i22.i93 = getelementptr inbounds i32, ptr %31, i64 %idxprom.i21.i92
Expand Down Expand Up @@ -2866,7 +2866,7 @@ while.body.i155: ; preds = %land.rhs.i137
br i1 %exitcond.not.i158, label %for.inc.i130, label %land.rhs.i137, !llvm.loop !20

land.lhs.true.i141: ; preds = %land.rhs.i137
%68 = trunc i64 %indvars.iv.i138 to i32
%68 = trunc nsw i64 %indvars.iv.i138 to i32
%sext.i142 = shl i64 %indvars.iv.i138, 32
%idxprom.i21.i143 = ashr exact i64 %sext.i142, 32
%arrayidx.i22.i144 = getelementptr inbounds i32, ptr %61, i64 %idxprom.i21.i143
Expand Down Expand Up @@ -2932,7 +2932,7 @@ while.body.i206: ; preds = %land.rhs.i188
br i1 %exitcond.not.i209, label %for.inc.i181, label %land.rhs.i188, !llvm.loop !20

land.lhs.true.i192: ; preds = %land.rhs.i188
%82 = trunc i64 %indvars.iv.i189 to i32
%82 = trunc nsw i64 %indvars.iv.i189 to i32
%sext.i193 = shl i64 %indvars.iv.i189, 32
%idxprom.i21.i194 = ashr exact i64 %sext.i193, 32
%arrayidx.i22.i195 = getelementptr inbounds i32, ptr %61, i64 %idxprom.i21.i194
Expand Down Expand Up @@ -2968,7 +2968,7 @@ for.inc.i181: ; preds = %while.body.i206, %i

_ZNK15btReducedVector3dotERKS_.exit210.loopexit: ; preds = %for.inc.i181
%conv59 = fpext float %ret.1.i183 to double
%92 = trunc i64 %indvars.iv238 to i32
%92 = trunc nuw nsw i64 %indvars.iv238 to i32
%call60 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, i32 noundef %27, i32 noundef %92, double noundef %conv59)
br label %for.inc63

Expand Down Expand Up @@ -3748,7 +3748,7 @@ for.body14.i: ; preds = %for.cond10.preheade
.noexc19: ; preds = %for.body14.i
%indvars.iv.next34.i = add nuw nsw i64 %indvars.iv33.i, 1
%18 = load i32, ptr %m_size.i.i, align 4
%19 = trunc i64 %indvars.iv.next34.i to i32
%19 = trunc nuw i64 %indvars.iv.next34.i to i32
%cmp13.i = icmp sgt i32 %18, %19
br i1 %cmp13.i, label %for.body14.i, label %for.inc22.loopexit.i, !llvm.loop !30

Expand Down Expand Up @@ -4497,7 +4497,7 @@ for.body14: ; preds = %for.cond10.preheade
tail call void @_ZN10btSoftBody23defaultCollisionHandlerEPS_(ptr noundef nonnull align 8 dereferenceable(2064) %9, ptr noundef %10)
%indvars.iv.next34 = add nuw nsw i64 %indvars.iv33, 1
%11 = load i32, ptr %m_size.i, align 4
%12 = trunc i64 %indvars.iv.next34 to i32
%12 = trunc nuw i64 %indvars.iv.next34 to i32
%cmp13 = icmp sgt i32 %11, %12
br i1 %cmp13, label %for.body14, label %for.inc22.loopexit, !llvm.loop !30

Expand Down Expand Up @@ -5028,7 +5028,7 @@ for.inc203: ; preds = %if.then194.for.inc2
%148 = phi i32 [ %.pre313, %if.then194.for.inc203_crit_edge ], [ %139, %land.lhs.true ], [ %139, %land.lhs.true ], [ %139, %land.lhs.true ], [ %139, %for.body183 ], [ %139, %for.body183 ], [ %139, %for.body183 ]
%149 = phi i32 [ %.pre313, %if.then194.for.inc203_crit_edge ], [ %140, %land.lhs.true ], [ %140, %land.lhs.true ], [ %140, %land.lhs.true ], [ %140, %for.body183 ], [ %140, %for.body183 ], [ %140, %for.body183 ]
%indvars.iv.next302 = add nuw nsw i64 %indvars.iv301, 1
%150 = trunc i64 %indvars.iv.next302 to i32
%150 = trunc nuw i64 %indvars.iv.next302 to i32
%cmp182 = icmp sgt i32 %149, %150
br i1 %cmp182, label %for.body183, label %for.inc206.loopexit, !llvm.loop !45

Expand Down Expand Up @@ -5241,7 +5241,7 @@ _ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit: ; preds = %for.body8.i
for.body: ; preds = %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit, %for.body
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %_ZN20btAlignedObjectArrayIiE6resizeEiRKi.exit ]
%arrayidx.i = getelementptr inbounds i32, ptr %call.i.i.i.i73, i64 %indvars.iv
%1 = trunc i64 %indvars.iv to i32
%1 = trunc nuw nsw i64 %indvars.iv to i32
store i32 %1, ptr %arrayidx.i, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%2 = load i32, ptr %m_size.i, align 4
Expand Down Expand Up @@ -7515,7 +7515,7 @@ for.inc: ; preds = %for.body
br i1 %cmp, label %for.body, label %if.end21, !llvm.loop !78

if.then20: ; preds = %if.then
%15 = trunc i64 %indvars.iv to i32
%15 = trunc nuw nsw i64 %indvars.iv to i32
%16 = load i32, ptr %m_size.i, align 4
%cmp.i = icmp sgt i32 %16, %15
br i1 %cmp.i, label %if.then.i, label %if.end21
Expand Down Expand Up @@ -7636,7 +7636,7 @@ for.inc.i.i: ; preds = %for.body.i.i
br i1 %exitcond.not.i.i, label %_ZN20btAlignedObjectArrayIP10btSoftBodyE6removeERKS1_.exit, label %for.body.i.i, !llvm.loop !80

_ZNK20btAlignedObjectArrayIP10btSoftBodyE16findLinearSearchERKS1_.exit.i: ; preds = %for.body.i.i
%11 = trunc i64 %indvars.iv.i.i to i32
%11 = trunc nuw nsw i64 %indvars.iv.i.i to i32
%cmp.i.i = icmp sgt i32 %8, %11
br i1 %cmp.i.i, label %if.then.i.i, label %_ZN20btAlignedObjectArrayIP10btSoftBodyE6removeERKS1_.exit

Expand Down Expand Up @@ -8832,7 +8832,7 @@ for.inc: ; preds = %_Z24btGetConstraint

for.end.split.loop.exit: ; preds = %_Z24btGetConstraintIslandId2PK17btTypedConstraint.exit
%arrayidx11.le = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv
%28 = trunc i64 %indvars.iv to i32
%28 = trunc nuw nsw i64 %indvars.iv to i32
br label %for.end

for.end: ; preds = %for.cond.preheader, %for.end.split.loop.exit
Expand Down Expand Up @@ -8884,7 +8884,7 @@ _Z24btGetConstraintIslandId2PK17btTypedConstraint.exit51: ; preds = %for.body21,
%inc28 = zext i1 %cmp26 to i32
%spec.select = add nuw nsw i32 %numCurConstraints.0271, %inc28
%indvars.iv.next296 = add nuw nsw i64 %indvars.iv295, 1
%37 = trunc i64 %indvars.iv.next296 to i32
%37 = trunc nuw i64 %indvars.iv.next296 to i32
%cmp20 = icmp sgt i32 %0, %37
br i1 %cmp20, label %for.body21, label %for.cond33.preheader, !llvm.loop !85

Expand All @@ -8907,7 +8907,7 @@ for.body35: ; preds = %for.body35.lr.ph, %
br i1 %cmp40, label %if.then41, label %for.inc46

if.then41: ; preds = %for.body35
%42 = trunc i64 %indvars.iv298 to i32
%42 = trunc nuw nsw i64 %indvars.iv298 to i32
%43 = load ptr, ptr %m_multiBodySortedConstraints36, align 8
%arrayidx44 = getelementptr inbounds ptr, ptr %43, i64 %indvars.iv298
%.pre = load i32, ptr %m_numMultiBodyConstraints, align 8
Expand All @@ -8921,7 +8921,7 @@ for.inc46: ; preds = %for.body35
br i1 %cmp34, label %for.body35, label %for.end48.loopexit.loopexit, !llvm.loop !86

for.end48.loopexit.loopexit: ; preds = %for.inc46
%46 = trunc i64 %indvars.iv.next299 to i32
%46 = trunc nuw nsw i64 %indvars.iv.next299 to i32
br label %for.end48

for.end48: ; preds = %for.cond33.preheader, %for.end48.loopexit.loopexit, %if.then41
Expand Down Expand Up @@ -8974,7 +8974,7 @@ for.body52: ; preds = %for.body52.lr.ph, %
%spec.select42 = add nuw nsw i32 %numCurMultiBodyConstraints.0279, %inc59
%indvars.iv.next302 = add nuw nsw i64 %indvars.iv301, 1
%53 = load i32, ptr %m_numMultiBodyConstraints, align 8
%54 = trunc i64 %indvars.iv.next302 to i32
%54 = trunc nuw i64 %indvars.iv.next302 to i32
%cmp51 = icmp sgt i32 %53, %54
br i1 %cmp51, label %for.body52, label %for.cond64.preheader, !llvm.loop !87

Expand Down Expand Up @@ -12110,9 +12110,9 @@ while.cond5: ; preds = %while.cond5, %while
br i1 %cmp.i41, label %while.cond5, label %while.end11, !llvm.loop !120

while.end11: ; preds = %while.cond5
%16 = trunc i64 %indvars.iv to i32
%17 = trunc i64 %indvars.iv43 to i32
%cmp.not = icmp sgt i32 %16, %17
%16 = trunc nsw i64 %indvars.iv to i32
%17 = trunc nsw i64 %indvars.iv43 to i32
%cmp.not = icmp sgt i64 %indvars.iv, %indvars.iv43
br i1 %cmp.not, label %do.cond, label %if.then

if.then: ; preds = %while.end11
Expand Down
20 changes: 10 additions & 10 deletions bench/bullet3/optimized/btMultiBodyDynamicsWorld.ll
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ for.inc.i.i: ; preds = %for.body.i.i
br i1 %exitcond.not.i.i, label %_ZN20btAlignedObjectArrayIP11btMultiBodyE6removeERKS1_.exit, label %for.body.i.i, !llvm.loop !7

_ZNK20btAlignedObjectArrayIP11btMultiBodyE16findLinearSearchERKS1_.exit.i: ; preds = %for.body.i.i
%3 = trunc i64 %indvars.iv.i.i to i32
%3 = trunc nuw nsw i64 %indvars.iv.i.i to i32
%cmp.i.i = icmp sgt i32 %0, %3
br i1 %cmp.i.i, label %if.then.i.i, label %_ZN20btAlignedObjectArrayIP11btMultiBodyE6removeERKS1_.exit

Expand Down Expand Up @@ -5110,7 +5110,7 @@ for.inc.i.i: ; preds = %for.body.i.i
br i1 %exitcond.not.i.i, label %_ZN20btAlignedObjectArrayIP21btMultiBodyConstraintE6removeERKS1_.exit, label %for.body.i.i, !llvm.loop !51

_ZNK20btAlignedObjectArrayIP21btMultiBodyConstraintE16findLinearSearchERKS1_.exit.i: ; preds = %for.body.i.i
%3 = trunc i64 %indvars.iv.i.i to i32
%3 = trunc nuw nsw i64 %indvars.iv.i.i to i32
%cmp.i.i = icmp sgt i32 %0, %3
br i1 %cmp.i.i, label %if.then.i.i, label %_ZN20btAlignedObjectArrayIP21btMultiBodyConstraintE6removeERKS1_.exit

Expand Down Expand Up @@ -7894,7 +7894,7 @@ for.inc: ; preds = %_Z24btGetConstraint

for.end.split.loop.exit: ; preds = %_Z24btGetConstraintIslandId2PK17btTypedConstraint.exit
%arrayidx11.le = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv
%28 = trunc i64 %indvars.iv to i32
%28 = trunc nuw nsw i64 %indvars.iv to i32
br label %for.end

for.end: ; preds = %for.cond.preheader, %for.end.split.loop.exit
Expand Down Expand Up @@ -7946,7 +7946,7 @@ _Z24btGetConstraintIslandId2PK17btTypedConstraint.exit51: ; preds = %for.body21,
%inc28 = zext i1 %cmp26 to i32
%spec.select = add nuw nsw i32 %numCurConstraints.0271, %inc28
%indvars.iv.next296 = add nuw nsw i64 %indvars.iv295, 1
%37 = trunc i64 %indvars.iv.next296 to i32
%37 = trunc nuw i64 %indvars.iv.next296 to i32
%cmp20 = icmp sgt i32 %0, %37
br i1 %cmp20, label %for.body21, label %for.cond33.preheader, !llvm.loop !69

Expand All @@ -7969,7 +7969,7 @@ for.body35: ; preds = %for.body35.lr.ph, %
br i1 %cmp40, label %if.then41, label %for.inc46

if.then41: ; preds = %for.body35
%42 = trunc i64 %indvars.iv298 to i32
%42 = trunc nuw nsw i64 %indvars.iv298 to i32
%43 = load ptr, ptr %m_multiBodySortedConstraints36, align 8
%arrayidx44 = getelementptr inbounds ptr, ptr %43, i64 %indvars.iv298
%.pre = load i32, ptr %m_numMultiBodyConstraints, align 8
Expand All @@ -7983,7 +7983,7 @@ for.inc46: ; preds = %for.body35
br i1 %cmp34, label %for.body35, label %for.end48.loopexit.loopexit, !llvm.loop !70

for.end48.loopexit.loopexit: ; preds = %for.inc46
%46 = trunc i64 %indvars.iv.next299 to i32
%46 = trunc nuw nsw i64 %indvars.iv.next299 to i32
br label %for.end48

for.end48: ; preds = %for.cond33.preheader, %for.end48.loopexit.loopexit, %if.then41
Expand Down Expand Up @@ -8036,7 +8036,7 @@ for.body52: ; preds = %for.body52.lr.ph, %
%spec.select42 = add nuw nsw i32 %numCurMultiBodyConstraints.0279, %inc59
%indvars.iv.next302 = add nuw nsw i64 %indvars.iv301, 1
%53 = load i32, ptr %m_numMultiBodyConstraints, align 8
%54 = trunc i64 %indvars.iv.next302 to i32
%54 = trunc nuw i64 %indvars.iv.next302 to i32
%cmp51 = icmp sgt i32 %53, %54
br i1 %cmp51, label %for.body52, label %for.cond64.preheader, !llvm.loop !71

Expand Down Expand Up @@ -9564,9 +9564,9 @@ while.cond5: ; preds = %while.cond5, %while
br i1 %cmp.i41, label %while.cond5, label %while.end11, !llvm.loop !85

while.end11: ; preds = %while.cond5
%16 = trunc i64 %indvars.iv to i32
%17 = trunc i64 %indvars.iv43 to i32
%cmp.not = icmp sgt i32 %16, %17
%16 = trunc nsw i64 %indvars.iv to i32
%17 = trunc nsw i64 %indvars.iv43 to i32
%cmp.not = icmp sgt i64 %indvars.iv, %indvars.iv43
br i1 %cmp.not, label %do.cond, label %if.then

if.then: ; preds = %while.end11
Expand Down
20 changes: 10 additions & 10 deletions bench/bullet3/optimized/btOverlappingPairCache.ll
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ for.body20: ; preds = %for.body20.lr.ph, %
store i32 %28, ptr %arrayidx.i76, align 4
%30 = load ptr, ptr %m_data9.i, align 8
%arrayidx.i79 = getelementptr inbounds i32, ptr %30, i64 %idxprom.i72
%31 = trunc i64 %indvars.iv92 to i32
%31 = trunc nuw nsw i64 %indvars.iv92 to i32
store i32 %31, ptr %arrayidx.i79, align 4
%indvars.iv.next93 = add nuw nsw i64 %indvars.iv92, 1
%exitcond96.not = icmp eq i64 %indvars.iv.next93, %wide.trip.count95
Expand Down Expand Up @@ -1480,7 +1480,7 @@ cond.end17: ; preds = %cond.end, %cond.tru
store i32 %cond18, ptr %m_uidA1, align 4
%18 = load ptr, ptr %m_data.i.i, align 8
%arrayidx.i32 = getelementptr inbounds %struct.MyPairIndex, ptr %18, i64 %indvars.iv
%19 = trunc i64 %indvars.iv to i32
%19 = trunc nuw nsw i64 %indvars.iv to i32
store i32 %19, ptr %arrayidx.i32, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%.pr = load i32, ptr %m_size.i.i, align 4
Expand Down Expand Up @@ -1940,7 +1940,7 @@ for.inc.i: ; preds = %for.body.i
br i1 %exitcond.not.i, label %return, label %for.body.i, !llvm.loop !25

_ZNK20btAlignedObjectArrayI16btBroadphasePairE16findLinearSearchERKS0_.exit: ; preds = %for.body.i
%8 = trunc i64 %indvars.iv.i to i32
%8 = trunc nuw nsw i64 %indvars.iv.i to i32
%cmp = icmp sgt i32 %3, %8
br i1 %cmp, label %if.then5, label %return

Expand Down Expand Up @@ -2153,7 +2153,7 @@ for.inc.i: ; preds = %for.body.i
br i1 %exitcond.not.i, label %return, label %for.body.i, !llvm.loop !25

_ZNK20btAlignedObjectArrayI16btBroadphasePairE16findLinearSearchERKS0_.exit: ; preds = %for.body.i
%8 = trunc i64 %indvars.iv.i to i32
%8 = trunc nuw nsw i64 %indvars.iv.i to i32
%cmp = icmp sgt i32 %3, %8
br i1 %cmp, label %if.then5, label %return

Expand Down Expand Up @@ -2872,9 +2872,9 @@ while.body10: ; preds = %while.cond5, %_ZNK2
br label %while.cond5, !llvm.loop !28

while.end11: ; preds = %_ZNK23MyPairIndeSortPredicateclERK11MyPairIndexS2_.exit32
%10 = trunc i64 %indvars.iv to i32
%11 = trunc i64 %indvars.iv36 to i32
%cmp.not = icmp sgt i32 %10, %11
%10 = trunc nsw i64 %indvars.iv to i32
%11 = trunc nsw i64 %indvars.iv36 to i32
%cmp.not = icmp sgt i64 %indvars.iv, %indvars.iv36
br i1 %cmp.not, label %do.cond, label %if.then

if.then: ; preds = %while.end11
Expand Down Expand Up @@ -3000,7 +3000,7 @@ land.lhs.true33.i: ; preds = %lor.lhs.false.i
br i1 %cmp36.i, label %land.rhs.i, label %while.cond5.preheader

while.cond5.preheader: ; preds = %_ZNK29btBroadphasePairSortPredicateclERK16btBroadphasePairS2_.exit, %land.rhs.i, %land.lhs.true33.i
%9 = trunc i64 %indvars.iv to i32
%9 = trunc nsw i64 %indvars.iv to i32
%10 = sext i32 %j.0 to i64
br label %while.cond5

Expand Down Expand Up @@ -3089,8 +3089,8 @@ while.body10: ; preds = %cond.end24.i44, %la
br label %while.cond5, !llvm.loop !31

while.end11: ; preds = %land.lhs.true33.i53, %land.rhs.i55, %_ZNK29btBroadphasePairSortPredicateclERK16btBroadphasePairS2_.exit59
%19 = trunc i64 %indvars.iv65 to i32
%cmp.not = icmp sgt i32 %9, %19
%19 = trunc nsw i64 %indvars.iv65 to i32
%cmp.not = icmp sgt i64 %indvars.iv, %indvars.iv65
br i1 %cmp.not, label %do.cond, label %if.then

if.then: ; preds = %while.end11
Expand Down
12 changes: 6 additions & 6 deletions bench/bullet3/optimized/btSimpleBroadphase.ll
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ for.body: ; preds = %for.body.preheader,
%0 = load ptr, ptr %m_pHandles, align 8
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%m_nextFree.i = getelementptr inbounds %struct.btSimpleBroadphaseProxy, ptr %0, i64 %indvars.iv, i32 1
%1 = trunc i64 %indvars.iv.next to i32
%1 = trunc nuw nsw i64 %indvars.iv.next to i32
store i32 %1, ptr %m_nextFree.i, align 4
%2 = load ptr, ptr %m_pHandles, align 8
%m_uniqueId = getelementptr inbounds %struct.btSimpleBroadphaseProxy, ptr %2, i64 %indvars.iv, i32 0, i32 3
Expand Down Expand Up @@ -572,7 +572,7 @@ for.body: ; preds = %for.body.lr.ph, %fo
for.cond4.preheader: ; preds = %for.body
%5 = sext i32 %2 to i64
%cmp6.not.not95 = icmp slt i64 %indvars.iv, %5
%6 = trunc i64 %indvars.iv to i32
%6 = trunc nuw nsw i64 %indvars.iv to i32
br i1 %cmp6.not.not95, label %for.body7.lr.ph, label %for.inc44

for.body7.lr.ph: ; preds = %for.cond4.preheader
Expand Down Expand Up @@ -679,7 +679,7 @@ if.then36: ; preds = %if.then30

for.inc: ; preds = %if.then20, %if.then17, %if.then30, %if.then36, %if.else, %for.body7
%31 = load i32, ptr %m_LastHandleIndex, align 8
%32 = trunc i64 %indvars.iv.next108 to i32
%32 = trunc nuw i64 %indvars.iv.next108 to i32
%cmp6.not.not = icmp sgt i32 %31, %32
br i1 %cmp6.not.not, label %for.body7, label %for.inc44, !llvm.loop !9

Expand Down Expand Up @@ -1182,7 +1182,7 @@ land.lhs.true33.i: ; preds = %lor.lhs.false.i
br i1 %cmp36.i, label %land.rhs.i, label %while.cond5.preheader

while.cond5.preheader: ; preds = %_ZNK29btBroadphasePairSortPredicateclERK16btBroadphasePairS2_.exit, %land.rhs.i, %land.lhs.true33.i
%9 = trunc i64 %indvars.iv to i32
%9 = trunc nsw i64 %indvars.iv to i32
%10 = sext i32 %j.0 to i64
br label %while.cond5

Expand Down Expand Up @@ -1271,8 +1271,8 @@ while.body10: ; preds = %cond.end24.i44, %la
br label %while.cond5, !llvm.loop !15

while.end11: ; preds = %land.lhs.true33.i53, %land.rhs.i55, %_ZNK29btBroadphasePairSortPredicateclERK16btBroadphasePairS2_.exit59
%19 = trunc i64 %indvars.iv65 to i32
%cmp.not = icmp sgt i32 %9, %19
%19 = trunc nsw i64 %indvars.iv65 to i32
%cmp.not = icmp sgt i64 %indvars.iv, %indvars.iv65
br i1 %cmp.not, label %do.cond, label %if.then

if.then: ; preds = %while.end11
Expand Down
16 changes: 8 additions & 8 deletions bench/bullet3/optimized/btSimulationIslandManager.ll
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ _ZN11btUnionFind4findEi.exit: ; preds = %while.body.i, %if.t
store i32 %x.addr.0.lcssa.i, ptr %m_islandTag1.i, align 4
%11 = load ptr, ptr %m_data.i.i, align 8
%m_sz = getelementptr inbounds %struct.btElement, ptr %11, i64 %idxprom.i15.i, i32 1
%12 = trunc i64 %indvars.iv to i32
%12 = trunc nuw nsw i64 %indvars.iv to i32
store i32 %12, ptr %m_sz, align 4
%m_companionId.i = getelementptr inbounds i8, ptr %2, i64 232
store i32 -1, ptr %m_companionId.i, align 8
Expand Down Expand Up @@ -599,8 +599,8 @@ lpad: ; preds = %lpad.loopexit.split
resume { ptr, i32 } %lpad.phi

for.end.split.loop.exit174: ; preds = %land.rhs
%13 = trunc i64 %indvars.iv to i32
%14 = trunc i64 %indvars.iv.next to i32
%13 = trunc nsw i64 %indvars.iv to i32
%14 = trunc nsw i64 %indvars.iv.next to i32
br label %for.end

for.end: ; preds = %for.cond14, %for.end.split.loop.exit174
Expand Down Expand Up @@ -1163,7 +1163,7 @@ _ZNK17btCollisionObject8isActiveEv.exit: ; preds = %invoke.cont47, %inv
br i1 %cmp33, label %land.rhs, label %for.end, !llvm.loop !19

for.end.split.loop.exit116: ; preds = %land.rhs
%32 = trunc i64 %indvars.iv to i32
%32 = trunc nsw i64 %indvars.iv to i32
br label %for.end

for.end: ; preds = %_ZNK17btCollisionObject8isActiveEv.exit, %for.end.split.loop.exit116
Expand Down Expand Up @@ -1230,7 +1230,7 @@ _Z11getIslandIdPK20btPersistentManifold.exit69: ; preds = %land.rhs66, %cond.f
br i1 %cmp72, label %for.cond64, label %for.end77.split.loop.exit119, !llvm.loop !20

for.end77.split.loop.exit119: ; preds = %_Z11getIslandIdPK20btPersistentManifold.exit69
%45 = trunc i64 %indvars.iv.next112 to i32
%45 = trunc nsw i64 %indvars.iv.next112 to i32
br label %for.end77

for.end77: ; preds = %for.cond64, %for.end77.split.loop.exit119
Expand Down Expand Up @@ -1479,7 +1479,7 @@ land.rhs.i: ; preds = %land.lhs.true15.i

while.cond5.preheader: ; preds = %land.rhs.i, %land.lhs.true15.i, %_Z11getIslandIdPK20btPersistentManifold.exit52.i
%arrayidx4.le = getelementptr inbounds ptr, ptr %2, i64 %indvars.iv
%35 = trunc i64 %indvars.iv to i32
%35 = trunc nsw i64 %indvars.iv to i32
%36 = sext i32 %j.0 to i64
br label %while.cond5

Expand Down Expand Up @@ -1612,8 +1612,8 @@ while.body10: ; preds = %_Z11getIslandIdPK20
br label %while.cond5, !llvm.loop !23

while.end11: ; preds = %_Z11getIslandIdPK20btPersistentManifold.exit52.i63, %land.lhs.true15.i66, %_ZNK46btPersistentManifoldSortPredicateDeterministicclEPK20btPersistentManifoldS2_.exit86
%66 = trunc i64 %indvars.iv114 to i32
%cmp.not = icmp sgt i32 %35, %66
%66 = trunc nsw i64 %indvars.iv114 to i32
%cmp.not = icmp sgt i64 %indvars.iv, %indvars.iv114
br i1 %cmp.not, label %do.cond, label %if.then

if.then: ; preds = %while.end11
Expand Down
202 changes: 100 additions & 102 deletions bench/bullet3/optimized/btSimulationIslandManagerMt.ll

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions bench/bullet3/optimized/btUnionFind.ll
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ for.body: ; preds = %for.body.lr.ph, %fo
%indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.body ]
%9 = load ptr, ptr %m_data.i, align 8
%arrayidx.i = getelementptr inbounds %struct.btElement, ptr %9, i64 %indvars.iv
%10 = trunc i64 %indvars.iv to i32
%10 = trunc nuw nsw i64 %indvars.iv to i32
store i32 %10, ptr %arrayidx.i, align 4
%11 = load ptr, ptr %m_data.i, align 8
%m_sz = getelementptr inbounds %struct.btElement, ptr %11, i64 %indvars.iv, i32 1
Expand Down Expand Up @@ -330,7 +330,7 @@ for.body: ; preds = %for.body.lr.ph, %_Z
%2 = load i32, ptr %arrayidx.i16.i, align 4
%3 = zext i32 %2 to i64
%cmp.not17.i = icmp eq i64 %indvars.iv, %3
%4 = trunc i64 %indvars.iv to i32
%4 = trunc nuw nsw i64 %indvars.iv to i32
br i1 %cmp.not17.i, label %_ZN11btUnionFind4findEi.exit, label %while.body.i

while.body.i: ; preds = %for.body, %while.body.i
Expand Down Expand Up @@ -409,7 +409,7 @@ while.cond: ; preds = %while.cond, %do.bod

while.cond5.preheader: ; preds = %while.cond
%arrayidx4.le = getelementptr inbounds %struct.btElement, ptr %2, i64 %indvars.iv
%5 = trunc i64 %indvars.iv to i32
%5 = trunc nsw i64 %indvars.iv to i32
%6 = sext i32 %j.0 to i64
br label %while.cond5

Expand All @@ -422,8 +422,8 @@ while.cond5: ; preds = %while.cond5, %while
br i1 %cmp.i24, label %while.cond5, label %while.end11, !llvm.loop !12

while.end11: ; preds = %while.cond5
%8 = trunc i64 %indvars.iv29 to i32
%cmp.not = icmp sgt i32 %5, %8
%8 = trunc nsw i64 %indvars.iv29 to i32
%cmp.not = icmp sgt i64 %indvars.iv, %indvars.iv29
br i1 %cmp.not, label %do.cond, label %if.then

if.then: ; preds = %while.end11
Expand Down
283 changes: 141 additions & 142 deletions bench/clamav/optimized/yara_grammar.c.ll

Large diffs are not rendered by default.

182 changes: 90 additions & 92 deletions bench/cmake/optimized/trees.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1851,124 +1851,122 @@ pqdownheap.exit122: ; preds = %231, %241, %245, %p

.outer.split.lr.ph.i: ; preds = %.lr.ph125.i
%347 = zext i16 %346 to i32
%348 = trunc nsw i64 %indvars.iv138.i to i32
%349 = trunc i64 %indvars.iv138.i to i16
%348 = trunc i64 %indvars.iv138.i to i16
br label %.outer.split.i

.outer.split.us.i: ; preds = %.outer.i, %.lr.ph125.i
%.286.ph.lcssa.i = phi i32 [ %.185124.i, %.lr.ph125.i ], [ %357, %.outer.i ]
%.286.ph.lcssa.i = phi i32 [ %.185124.i, %.lr.ph125.i ], [ %356, %.outer.i ]
%indvars.iv.next139.i = add nsw i64 %indvars.iv138.i, -1
%350 = and i64 %indvars.iv.next139.i, 4294967295
%.not.i124 = icmp eq i64 %350, 0
%349 = and i64 %indvars.iv.next139.i, 4294967295
%.not.i124 = icmp eq i64 %349, 0
br i1 %.not.i124, label %gen_bitlen.exit, label %.lr.ph125.i, !llvm.loop !22

.outer.split.i: ; preds = %.outer.i, %.outer.split.lr.ph.i
%.286.ph120.i = phi i32 [ %.185124.i, %.outer.split.lr.ph.i ], [ %357, %.outer.i ]
%.091.ph119.i = phi i32 [ %347, %.outer.split.lr.ph.i ], [ %371, %.outer.i ]
%351 = sext i32 %.286.ph120.i to i64
br label %352
%.286.ph120.i = phi i32 [ %.185124.i, %.outer.split.lr.ph.i ], [ %356, %.outer.i ]
%.091.ph119.i = phi i32 [ %347, %.outer.split.lr.ph.i ], [ %369, %.outer.i ]
%350 = sext i32 %.286.ph120.i to i64
br label %351

352: ; preds = %352, %.outer.split.i
%indvars.iv135.i = phi i64 [ %351, %.outer.split.i ], [ %indvars.iv.next136.i, %352 ]
351: ; preds = %351, %.outer.split.i
%indvars.iv135.i = phi i64 [ %350, %.outer.split.i ], [ %indvars.iv.next136.i, %351 ]
%indvars.iv.next136.i = add nsw i64 %indvars.iv135.i, -1
%353 = getelementptr inbounds [573 x i32], ptr %62, i64 0, i64 %indvars.iv.next136.i
%354 = load i32, ptr %353, align 4
%355 = icmp sgt i32 %354, %260
br i1 %355, label %352, label %356, !llvm.loop !23

356: ; preds = %352
%357 = trunc nsw i64 %indvars.iv.next136.i to i32
%358 = sext i32 %354 to i64
%359 = getelementptr inbounds %struct.ct_data_s, ptr %259, i64 %358
%360 = getelementptr inbounds i8, ptr %359, i64 2
%361 = load i16, ptr %360, align 2
%362 = zext i16 %361 to i32
%.not100.i = icmp eq i32 %348, %362
br i1 %.not100.i, label %.outer.i, label %363

363: ; preds = %356
%364 = zext i16 %361 to i64
%365 = sub nsw i64 %indvars.iv138.i, %364
%366 = load i16, ptr %359, align 2
%367 = zext i16 %366 to i64
%368 = mul nsw i64 %365, %367
%369 = load i64, ptr %278, align 8
%370 = add i64 %368, %369
store i64 %370, ptr %278, align 8
store i16 %349, ptr %360, align 2
%352 = getelementptr inbounds [573 x i32], ptr %62, i64 0, i64 %indvars.iv.next136.i
%353 = load i32, ptr %352, align 4
%354 = icmp sgt i32 %353, %260
br i1 %354, label %351, label %355, !llvm.loop !23

355: ; preds = %351
%356 = trunc nsw i64 %indvars.iv.next136.i to i32
%357 = sext i32 %353 to i64
%358 = getelementptr inbounds %struct.ct_data_s, ptr %259, i64 %357
%359 = getelementptr inbounds i8, ptr %358, i64 2
%360 = load i16, ptr %359, align 2
%361 = zext i16 %360 to i64
%.not100.i = icmp eq i64 %indvars.iv138.i, %361
br i1 %.not100.i, label %.outer.i, label %362

362: ; preds = %355
%363 = sub nsw i64 %indvars.iv138.i, %361
%364 = load i16, ptr %358, align 2
%365 = zext i16 %364 to i64
%366 = mul nsw i64 %363, %365
%367 = load i64, ptr %278, align 8
%368 = add i64 %366, %367
store i64 %368, ptr %278, align 8
store i16 %348, ptr %359, align 2
br label %.outer.i

.outer.i: ; preds = %363, %356
%371 = add nsw i32 %.091.ph119.i, -1
%.not99.i = icmp eq i32 %371, 0
.outer.i: ; preds = %362, %355
%369 = add nsw i32 %.091.ph119.i, -1
%.not99.i = icmp eq i32 %369, 0
br i1 %.not99.i, label %.outer.split.us.i, label %.outer.split.i, !llvm.loop !23

gen_bitlen.exit: ; preds = %.outer.split.us.i, %253, %._crit_edge.i, %.preheader.i
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3)
%invariant.gep.i = getelementptr i8, ptr %0, i64 2974
br label %373
br label %371

.preheader.i128: ; preds = %373
.preheader.i128: ; preds = %371
%.not21.i = icmp slt i32 %.2.lcssa, 0
br i1 %.not21.i, label %gen_codes.exit, label %.lr.ph.preheader.i

.lr.ph.preheader.i: ; preds = %.preheader.i128
%372 = add nuw i32 %.2.lcssa, 1
%wide.trip.count.i = zext i32 %372 to i64
%370 = add nuw i32 %.2.lcssa, 1
%wide.trip.count.i = zext i32 %370 to i64
br label %.lr.ph.i129

373: ; preds = %373, %gen_bitlen.exit
%indvars.iv.i125 = phi i64 [ 1, %gen_bitlen.exit ], [ %indvars.iv.next.i126, %373 ]
%.020.i = phi i16 [ 0, %gen_bitlen.exit ], [ %376, %373 ]
371: ; preds = %371, %gen_bitlen.exit
%indvars.iv.i125 = phi i64 [ 1, %gen_bitlen.exit ], [ %indvars.iv.next.i126, %371 ]
%.020.i = phi i16 [ 0, %gen_bitlen.exit ], [ %374, %371 ]
%gep.i = getelementptr i16, ptr %invariant.gep.i, i64 %indvars.iv.i125
%374 = load i16, ptr %gep.i, align 2
%375 = add i16 %374, %.020.i
%376 = shl i16 %375, 1
%377 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %indvars.iv.i125
store i16 %376, ptr %377, align 2
%372 = load i16, ptr %gep.i, align 2
%373 = add i16 %372, %.020.i
%374 = shl i16 %373, 1
%375 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %indvars.iv.i125
store i16 %374, ptr %375, align 2
%indvars.iv.next.i126 = add nuw nsw i64 %indvars.iv.i125, 1
%exitcond.not.i127 = icmp eq i64 %indvars.iv.next.i126, 16
br i1 %exitcond.not.i127, label %.preheader.i128, label %373, !llvm.loop !24

.lr.ph.i129: ; preds = %395, %.lr.ph.preheader.i
%indvars.iv23.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next24.i, %395 ]
%378 = getelementptr inbounds %struct.ct_data_s, ptr %4, i64 %indvars.iv23.i
%379 = getelementptr inbounds i8, ptr %378, i64 2
%380 = load i16, ptr %379, align 2
%381 = icmp eq i16 %380, 0
br i1 %381, label %395, label %382

382: ; preds = %.lr.ph.i129
%383 = zext i16 %380 to i32
%384 = zext i16 %380 to i64
%385 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %384
%386 = load i16, ptr %385, align 2
%387 = add i16 %386, 1
store i16 %387, ptr %385, align 2
br label %388

388: ; preds = %388, %382
%.07.i.i = phi i16 [ %386, %382 ], [ %391, %388 ]
%.06.i.i = phi i32 [ %383, %382 ], [ %393, %388 ]
%.0.i.i = phi i16 [ 0, %382 ], [ %392, %388 ]
%389 = and i16 %.07.i.i, 1
%390 = or disjoint i16 %.0.i.i, %389
%391 = lshr i16 %.07.i.i, 1
%392 = shl i16 %390, 1
%393 = add nsw i32 %.06.i.i, -1
%394 = icmp ugt i32 %.06.i.i, 1
br i1 %394, label %388, label %bi_reverse.exit.i, !llvm.loop !25

bi_reverse.exit.i: ; preds = %388
store i16 %390, ptr %378, align 2
br label %395

395: ; preds = %bi_reverse.exit.i, %.lr.ph.i129
br i1 %exitcond.not.i127, label %.preheader.i128, label %371, !llvm.loop !24

.lr.ph.i129: ; preds = %393, %.lr.ph.preheader.i
%indvars.iv23.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next24.i, %393 ]
%376 = getelementptr inbounds %struct.ct_data_s, ptr %4, i64 %indvars.iv23.i
%377 = getelementptr inbounds i8, ptr %376, i64 2
%378 = load i16, ptr %377, align 2
%379 = icmp eq i16 %378, 0
br i1 %379, label %393, label %380

380: ; preds = %.lr.ph.i129
%381 = zext i16 %378 to i32
%382 = zext i16 %378 to i64
%383 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %382
%384 = load i16, ptr %383, align 2
%385 = add i16 %384, 1
store i16 %385, ptr %383, align 2
br label %386

386: ; preds = %386, %380
%.07.i.i = phi i16 [ %384, %380 ], [ %389, %386 ]
%.06.i.i = phi i32 [ %381, %380 ], [ %391, %386 ]
%.0.i.i = phi i16 [ 0, %380 ], [ %390, %386 ]
%387 = and i16 %.07.i.i, 1
%388 = or disjoint i16 %.0.i.i, %387
%389 = lshr i16 %.07.i.i, 1
%390 = shl i16 %388, 1
%391 = add nsw i32 %.06.i.i, -1
%392 = icmp ugt i32 %.06.i.i, 1
br i1 %392, label %386, label %bi_reverse.exit.i, !llvm.loop !25

bi_reverse.exit.i: ; preds = %386
store i16 %388, ptr %376, align 2
br label %393

393: ; preds = %bi_reverse.exit.i, %.lr.ph.i129
%indvars.iv.next24.i = add nuw nsw i64 %indvars.iv23.i, 1
%exitcond26.not.i = icmp eq i64 %indvars.iv.next24.i, %wide.trip.count.i
br i1 %exitcond26.not.i, label %gen_codes.exit, label %.lr.ph.i129, !llvm.loop !26

gen_codes.exit: ; preds = %395, %.preheader.i128
gen_codes.exit: ; preds = %393, %.preheader.i128
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3)
ret void
}
Expand Down Expand Up @@ -2068,9 +2066,9 @@ define internal fastcc void @compress_block(ptr nocapture noundef %0, ptr nocapt
%68 = getelementptr inbounds [256 x i8], ptr @cm_zlib__length_code, i64 0, i64 %31
%69 = load i8, ptr %68, align 1
%70 = zext i8 %69 to i64
%71 = getelementptr %struct.ct_data_s, ptr %1, i64 %70
%72 = getelementptr i8, ptr %71, i64 1028
%73 = getelementptr i8, ptr %71, i64 1030
%71 = getelementptr inbounds %struct.ct_data_s, ptr %1, i64 %70
%72 = getelementptr inbounds i8, ptr %71, i64 1028
%73 = getelementptr inbounds i8, ptr %71, i64 1030
%74 = load i16, ptr %73, align 2
%75 = zext i16 %74 to i32
%76 = load i32, ptr %7, align 4
Expand Down Expand Up @@ -2359,7 +2357,7 @@ define internal fastcc void @compress_block(ptr nocapture noundef %0, ptr nocapt
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable
define dso_local i32 @cm_zlib__tr_tally(ptr nocapture noundef %0, i32 noundef %1, i32 noundef %2) local_unnamed_addr #1 {
define dso_local range(i32 0, 2) i32 @cm_zlib__tr_tally(ptr nocapture noundef %0, i32 noundef %1, i32 noundef %2) local_unnamed_addr #1 {
%4 = trunc i32 %1 to i8
%5 = getelementptr inbounds i8, ptr %0, i64 5888
%6 = load ptr, ptr %5, align 8
Expand Down
20 changes: 10 additions & 10 deletions bench/cvc5/optimized/Solver.cc.ll
Original file line number Diff line number Diff line change
Expand Up @@ -11103,8 +11103,8 @@ for.body4: ; preds = %for.cond2.preheader
%cmp3 = phi i1 [ true, %for.cond2.preheader ], [ false, %for.inc13 ]
%indvars.iv85 = phi i64 [ 0, %for.cond2.preheader ], [ 1, %for.inc13 ]
%25 = load ptr, ptr %watches, align 8
%26 = getelementptr %"class.cvc5::internal::Minisat::vec.404", ptr %25, i64 %indvars.iv85
%arrayidx.i.i22 = getelementptr %"class.cvc5::internal::Minisat::vec.404", ptr %26, i64 %23
%26 = getelementptr inbounds %"class.cvc5::internal::Minisat::vec.404", ptr %25, i64 %indvars.iv85
%arrayidx.i.i22 = getelementptr inbounds %"class.cvc5::internal::Minisat::vec.404", ptr %26, i64 %23
%sz.i = getelementptr inbounds i8, ptr %arrayidx.i.i22, i64 8
%27 = load i32, ptr %sz.i, align 8
%cmp1071 = icmp sgt i32 %27, 0
Expand Down Expand Up @@ -13901,7 +13901,7 @@ if.else: ; preds = %entry, %for.end
br label %for.cond

for.cond: ; preds = %if.end, %if.else
%j.0 = phi i32 [ %size.tr31, %if.else ], [ %6, %if.end ]
%j.0 = phi i32 [ %size.tr31, %if.else ], [ %5, %if.end ]
%i.0 = phi i64 [ -1, %if.else ], [ %indvars.iv.next, %if.end ]
%sext = shl i64 %i.0, 32
%3 = ashr exact i64 %sext, 32
Expand All @@ -13917,32 +13917,32 @@ do.body: ; preds = %do.body, %for.cond

do.body6.preheader: ; preds = %do.body
%arrayidx3.le = getelementptr inbounds %"struct.cvc5::internal::Minisat::Lit", ptr %array.tr30, i64 %indvars.iv.next
%4 = trunc nsw i64 %indvars.iv.next to i32
%5 = sext i32 %j.0 to i64
%4 = sext i32 %j.0 to i64
br label %do.body6

do.body6: ; preds = %do.body6.preheader, %do.body6
%indvars.iv34 = phi i64 [ %5, %do.body6.preheader ], [ %indvars.iv.next35, %do.body6 ]
%indvars.iv34 = phi i64 [ %4, %do.body6.preheader ], [ %indvars.iv.next35, %do.body6 ]
%indvars.iv.next35 = add nsw i64 %indvars.iv34, -1
%arrayidx11 = getelementptr inbounds %"struct.cvc5::internal::Minisat::Lit", ptr %array.tr30, i64 %indvars.iv.next35
%agg.tmp9.sroa.0.0.copyload = load i32, ptr %arrayidx11, align 4
%cmp.i.i28 = icmp slt i32 %pivot.sroa.0.0.copyload, %agg.tmp9.sroa.0.0.copyload
br i1 %cmp.i.i28, label %do.body6, label %do.end15, !llvm.loop !96

do.end15: ; preds = %do.body6
%6 = trunc nsw i64 %indvars.iv.next35 to i32
%cmp16.not = icmp slt i32 %4, %6
%cmp16.not = icmp slt i64 %indvars.iv.next, %indvars.iv.next35
br i1 %cmp16.not, label %if.end, label %for.end

if.end: ; preds = %do.end15
%arrayidx11.le = getelementptr inbounds %"struct.cvc5::internal::Minisat::Lit", ptr %array.tr30, i64 %indvars.iv.next35
%5 = trunc nsw i64 %indvars.iv.next35 to i32
store i32 %agg.tmp9.sroa.0.0.copyload, ptr %arrayidx3.le, align 4
store i32 %agg.tmp1.sroa.0.0.copyload, ptr %arrayidx11.le, align 4
br label %for.cond, !llvm.loop !97

for.end: ; preds = %do.end15
tail call void @_ZN4cvc58internal7Minisat4sortINS1_3LitENS1_16LessThan_defaultIS3_EEEEvPT_iT0_(ptr noundef nonnull %array.tr30, i32 noundef %4)
%sub = sub nsw i32 %size.tr31, %4
%6 = trunc nsw i64 %indvars.iv.next to i32
tail call void @_ZN4cvc58internal7Minisat4sortINS1_3LitENS1_16LessThan_defaultIS3_EEEEvPT_iT0_(ptr noundef nonnull %array.tr30, i32 noundef %6)
%sub = sub nsw i32 %size.tr31, %6
%cmp = icmp slt i32 %sub, 16
br i1 %cmp, label %if.then, label %if.else

Expand Down
7 changes: 4 additions & 3 deletions bench/fmt/optimized/format-impl-test.cc.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3309,10 +3309,10 @@ for.cond: ; preds = %_ZNK3fmt3v106detail
%9 = add nsw i64 %indvars.iv, -1
%10 = trunc nuw i64 %indvars.iv45 to i32
%cmp12.not.not = icmp slt i32 %spec.store.select, %10
%11 = trunc nuw i64 %indvars.iv to i32
br i1 %cmp12.not.not, label %_ZNK3fmt3v106detail6bigintixEi.exit, label %for.end

_ZNK3fmt3v106detail6bigintixEi.exit: ; preds = %for.cond
%11 = trunc nuw i64 %indvars.iv to i32
%cmp.i.i24 = icmp sgt i32 %11, 0
br i1 %cmp.i.i24, label %_ZNK3fmt3v106detail6bigintixEi.exit32, label %if.then.i.i25

Expand Down Expand Up @@ -3345,11 +3345,12 @@ if.then16: ; preds = %_ZNK3fmt3v106detail
br label %return

for.end: ; preds = %for.cond
%cmp21.not = icmp eq i32 %10, %11
%cmp21.not = icmp eq i64 %indvars.iv45, %indvars.iv
br i1 %cmp21.not, label %return, label %if.then22

if.then22: ; preds = %for.end
%cmp23 = icmp sgt i32 %10, %11
%15 = trunc nuw i64 %indvars.iv to i32
%cmp23 = icmp sgt i32 %10, %15
%cond24 = select i1 %cmp23, i32 1, i32 -1
br label %return

Expand Down
36 changes: 18 additions & 18 deletions bench/gromacs/optimized/dlasrt.cpp.ll
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,9 @@ switch.lookup: ; preds = %switch.hole_check
%68 = add nsw i32 %24, 1
br i1 %switch.masked, label %.preheader307, label %.preheader308

.preheader307: ; preds = %66, %84
%.2190 = phi i32 [ %75, %84 ], [ %68, %66 ]
%.2 = phi i32 [ %82, %84 ], [ %67, %66 ]
.preheader307: ; preds = %66, %83
%.2190 = phi i32 [ %75, %83 ], [ %68, %66 ]
%.2 = phi i32 [ %85, %83 ], [ %67, %66 ]
%69 = sext i32 %.2190 to i64
br label %70

Expand All @@ -200,13 +200,13 @@ switch.lookup: ; preds = %switch.hole_check
br i1 %80, label %77, label %81

81: ; preds = %77
%82 = trunc nsw i64 %indvars.iv.next279 to i32
%83 = icmp slt i32 %82, %75
br i1 %83, label %84, label %86
%82 = icmp slt i64 %indvars.iv.next279, %indvars.iv.next276
br i1 %82, label %83, label %86

84: ; preds = %81
%85 = getelementptr double, ptr %2, i64 %indvars.iv278
store double %72, ptr %85, align 8
83: ; preds = %81
%84 = getelementptr double, ptr %2, i64 %indvars.iv278
%85 = trunc nsw i64 %indvars.iv.next279 to i32
store double %72, ptr %84, align 8
store double %79, ptr %74, align 8
br label %.preheader307

Expand Down Expand Up @@ -237,9 +237,9 @@ switch.lookup: ; preds = %switch.hole_check
store i32 %75, ptr %98, align 4
br label %.loopexit

.preheader308: ; preds = %66, %116
%.4192 = phi i32 [ %107, %116 ], [ %68, %66 ]
%.4 = phi i32 [ %114, %116 ], [ %67, %66 ]
.preheader308: ; preds = %66, %115
%.4192 = phi i32 [ %107, %115 ], [ %68, %66 ]
%.4 = phi i32 [ %117, %115 ], [ %67, %66 ]
%101 = sext i32 %.4192 to i64
br label %102

Expand All @@ -266,13 +266,13 @@ switch.lookup: ; preds = %switch.hole_check
br i1 %112, label %109, label %113

113: ; preds = %109
%114 = trunc nsw i64 %indvars.iv.next273 to i32
%115 = icmp slt i32 %114, %107
br i1 %115, label %116, label %118
%114 = icmp slt i64 %indvars.iv.next273, %indvars.iv.next
br i1 %114, label %115, label %118

116: ; preds = %113
%117 = getelementptr double, ptr %2, i64 %indvars.iv272
store double %104, ptr %117, align 8
115: ; preds = %113
%116 = getelementptr double, ptr %2, i64 %indvars.iv272
%117 = trunc nsw i64 %indvars.iv.next273 to i32
store double %104, ptr %116, align 8
store double %111, ptr %106, align 8
br label %.preheader308

Expand Down
36 changes: 18 additions & 18 deletions bench/gromacs/optimized/hxprops.cpp.ll
Original file line number Diff line number Diff line change
Expand Up @@ -308,9 +308,9 @@ define noundef float @_Z6ca_phiiPKiPA3_f(i32 noundef %0, ptr nocapture noundef r
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%16 = getelementptr inbounds i32, ptr %1, i64 %indvars.iv.next
%17 = load i32, ptr %16, align 4
%18 = getelementptr i8, ptr %14, i64 8
%18 = getelementptr inbounds i8, ptr %14, i64 8
%19 = load i32, ptr %18, align 4
%20 = getelementptr i8, ptr %14, i64 12
%20 = getelementptr inbounds i8, ptr %14, i64 12
%21 = load i32, ptr %20, align 4
%22 = sext i32 %15 to i64
%23 = getelementptr inbounds [3 x float], ptr %2, i64 %22
Expand Down Expand Up @@ -1216,7 +1216,7 @@ define void @_Z12calc_hxpropsiP4t_bbPA3_Kf(i32 noundef %0, ptr nocapture noundef
br i1 %26, label %27, label %50

27: ; preds = %19
%28 = getelementptr i8, ptr %20, i64 376
%28 = getelementptr inbounds i8, ptr %20, i64 376
%29 = load i32, ptr %28, align 4
%30 = sext i32 %22 to i64
%31 = getelementptr inbounds [3 x float], ptr %2, i64 %30
Expand Down Expand Up @@ -1247,7 +1247,7 @@ define void @_Z12calc_hxpropsiP4t_bbPA3_Kf(i32 noundef %0, ptr nocapture noundef
br i1 %51, label %52, label %75

52: ; preds = %50
%53 = getelementptr i8, ptr %20, i64 484
%53 = getelementptr inbounds i8, ptr %20, i64 484
%54 = load i32, ptr %53, align 4
%55 = sext i32 %22 to i64
%56 = getelementptr inbounds [3 x float], ptr %2, i64 %55
Expand Down Expand Up @@ -1278,7 +1278,7 @@ define void @_Z12calc_hxpropsiP4t_bbPA3_Kf(i32 noundef %0, ptr nocapture noundef
br i1 %76, label %77, label %100

77: ; preds = %75
%78 = getelementptr i8, ptr %20, i64 592
%78 = getelementptr inbounds i8, ptr %20, i64 592
%79 = load i32, ptr %78, align 4
%80 = sext i32 %22 to i64
%81 = getelementptr inbounds [3 x float], ptr %2, i64 %80
Expand Down Expand Up @@ -1519,22 +1519,22 @@ _ZL10set_ahcityiP4t_bb.exit.i: ; preds = %42, %20
br i1 %58, label %.preheader.i, label %59, !llvm.loop !30

59: ; preds = %.preheader.i
%60 = trunc nsw i64 %indvars.iv.i to i32
%61 = trunc nsw i64 %indvars.iv37.i to i32
%62 = icmp sgt i32 %61, %60
br i1 %62, label %63, label %67
%60 = icmp sgt i64 %indvars.iv37.i, %indvars.iv.i
br i1 %60, label %61, label %67

63: ; preds = %59
%64 = sub nsw i32 %61, %60
61: ; preds = %59
%62 = trunc nsw i64 %indvars.iv.i to i32
%63 = trunc nsw i64 %indvars.iv37.i to i32
%64 = sub nsw i32 %63, %62
%65 = sub nsw i32 %.0.i, %.027.i
%66 = icmp sgt i32 %64, %65
%spec.select.i = select i1 %66, i32 %60, i32 %.027.i
%spec.select33.i = select i1 %66, i32 %61, i32 %.0.i
%spec.select.i = select i1 %66, i32 %62, i32 %.027.i
%spec.select33.i = select i1 %66, i32 %63, i32 %.0.i
br label %67

67: ; preds = %63, %59
%.128.i = phi i32 [ %.027.i, %59 ], [ %spec.select.i, %63 ]
%.1.i = phi i32 [ %.0.i, %59 ], [ %spec.select33.i, %63 ]
67: ; preds = %61, %59
%.128.i = phi i32 [ %.027.i, %59 ], [ %spec.select.i, %61 ]
%.1.i = phi i32 [ %.0.i, %59 ], [ %spec.select33.i, %61 ]
br i1 %57, label %47, label %_ZL9check_ahxiP4t_bbPiS1_.exit, !llvm.loop !31

_ZL9check_ahxiP4t_bbPiS1_.exit: ; preds = %67, %16, %.preheader
Expand All @@ -1548,7 +1548,7 @@ _ZL9check_ahxiP4t_bbPiS1_.exit: ; preds = %67, %16, %.preheade
%73 = getelementptr inbounds %struct.t_bb, ptr %1, i64 %72, i32 11
%74 = load i32, ptr %73, align 4
%75 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %68, ptr noundef nonnull @.str.21, i32 noundef %71, i32 noundef %74) #20
%invariant.gep = getelementptr i8, ptr %3, i64 16
%invariant.gep = getelementptr inbounds i8, ptr %3, i64 16
%.not72 = icmp sgt i32 %.266, %.2
br i1 %.not72, label %._crit_edge, label %.lr.ph75.preheader

Expand Down Expand Up @@ -1579,7 +1579,7 @@ _ZL9check_ahxiP4t_bbPiS1_.exit: ; preds = %67, %16, %.preheade
%90 = getelementptr inbounds i8, ptr %77, i64 68
%91 = load i32, ptr %90, align 4
%indvars.iv.next81 = add nuw nsw i64 %indvars.iv80, 5
%gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv80
%gep = getelementptr inbounds i32, ptr %invariant.gep, i64 %indvars.iv80
store i32 %91, ptr %gep, align 4
%92 = load i32, ptr %84, align 4
%93 = sub nsw i64 %indvars.iv82, %69
Expand Down
36 changes: 18 additions & 18 deletions bench/gromacs/optimized/slasrt.cpp.ll
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,9 @@ switch.lookup: ; preds = %switch.hole_check
%68 = add nsw i32 %24, 1
br i1 %switch.masked, label %.preheader307, label %.preheader308

.preheader307: ; preds = %66, %84
%.2190 = phi i32 [ %75, %84 ], [ %68, %66 ]
%.2 = phi i32 [ %82, %84 ], [ %67, %66 ]
.preheader307: ; preds = %66, %83
%.2190 = phi i32 [ %75, %83 ], [ %68, %66 ]
%.2 = phi i32 [ %85, %83 ], [ %67, %66 ]
%69 = sext i32 %.2190 to i64
br label %70

Expand All @@ -200,13 +200,13 @@ switch.lookup: ; preds = %switch.hole_check
br i1 %80, label %77, label %81

81: ; preds = %77
%82 = trunc nsw i64 %indvars.iv.next279 to i32
%83 = icmp slt i32 %82, %75
br i1 %83, label %84, label %86
%82 = icmp slt i64 %indvars.iv.next279, %indvars.iv.next276
br i1 %82, label %83, label %86

84: ; preds = %81
%85 = getelementptr float, ptr %2, i64 %indvars.iv278
store float %72, ptr %85, align 4
83: ; preds = %81
%84 = getelementptr float, ptr %2, i64 %indvars.iv278
%85 = trunc nsw i64 %indvars.iv.next279 to i32
store float %72, ptr %84, align 4
store float %79, ptr %74, align 4
br label %.preheader307

Expand Down Expand Up @@ -237,9 +237,9 @@ switch.lookup: ; preds = %switch.hole_check
store i32 %75, ptr %98, align 4
br label %.loopexit

.preheader308: ; preds = %66, %116
%.4192 = phi i32 [ %107, %116 ], [ %68, %66 ]
%.4 = phi i32 [ %114, %116 ], [ %67, %66 ]
.preheader308: ; preds = %66, %115
%.4192 = phi i32 [ %107, %115 ], [ %68, %66 ]
%.4 = phi i32 [ %117, %115 ], [ %67, %66 ]
%101 = sext i32 %.4192 to i64
br label %102

Expand All @@ -266,13 +266,13 @@ switch.lookup: ; preds = %switch.hole_check
br i1 %112, label %109, label %113

113: ; preds = %109
%114 = trunc nsw i64 %indvars.iv.next273 to i32
%115 = icmp slt i32 %114, %107
br i1 %115, label %116, label %118
%114 = icmp slt i64 %indvars.iv.next273, %indvars.iv.next
br i1 %114, label %115, label %118

116: ; preds = %113
%117 = getelementptr float, ptr %2, i64 %indvars.iv272
store float %104, ptr %117, align 4
115: ; preds = %113
%116 = getelementptr float, ptr %2, i64 %indvars.iv272
%117 = trunc nsw i64 %indvars.iv.next273 to i32
store float %104, ptr %116, align 4
store float %111, ptr %106, align 4
br label %.preheader308

Expand Down
182 changes: 90 additions & 92 deletions bench/gromacs/optimized/trees.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1879,124 +1879,122 @@ pqdownheap.exit122: ; preds = %231, %241, %245, %p

.outer.split.lr.ph.i: ; preds = %.lr.ph125.i
%347 = zext i16 %346 to i32
%348 = trunc nsw i64 %indvars.iv138.i to i32
%349 = trunc i64 %indvars.iv138.i to i16
%348 = trunc i64 %indvars.iv138.i to i16
br label %.outer.split.i

.outer.split.us.i: ; preds = %.outer.i, %.lr.ph125.i
%.286.ph.lcssa.i = phi i32 [ %.185124.i, %.lr.ph125.i ], [ %357, %.outer.i ]
%.286.ph.lcssa.i = phi i32 [ %.185124.i, %.lr.ph125.i ], [ %356, %.outer.i ]
%indvars.iv.next139.i = add nsw i64 %indvars.iv138.i, -1
%350 = and i64 %indvars.iv.next139.i, 4294967295
%.not.i124 = icmp eq i64 %350, 0
%349 = and i64 %indvars.iv.next139.i, 4294967295
%.not.i124 = icmp eq i64 %349, 0
br i1 %.not.i124, label %gen_bitlen.exit, label %.lr.ph125.i, !llvm.loop !22

.outer.split.i: ; preds = %.outer.i, %.outer.split.lr.ph.i
%.286.ph120.i = phi i32 [ %.185124.i, %.outer.split.lr.ph.i ], [ %357, %.outer.i ]
%.091.ph119.i = phi i32 [ %347, %.outer.split.lr.ph.i ], [ %371, %.outer.i ]
%351 = sext i32 %.286.ph120.i to i64
br label %352
%.286.ph120.i = phi i32 [ %.185124.i, %.outer.split.lr.ph.i ], [ %356, %.outer.i ]
%.091.ph119.i = phi i32 [ %347, %.outer.split.lr.ph.i ], [ %369, %.outer.i ]
%350 = sext i32 %.286.ph120.i to i64
br label %351

352: ; preds = %352, %.outer.split.i
%indvars.iv135.i = phi i64 [ %351, %.outer.split.i ], [ %indvars.iv.next136.i, %352 ]
351: ; preds = %351, %.outer.split.i
%indvars.iv135.i = phi i64 [ %350, %.outer.split.i ], [ %indvars.iv.next136.i, %351 ]
%indvars.iv.next136.i = add nsw i64 %indvars.iv135.i, -1
%353 = getelementptr inbounds [573 x i32], ptr %62, i64 0, i64 %indvars.iv.next136.i
%354 = load i32, ptr %353, align 4
%355 = icmp sgt i32 %354, %260
br i1 %355, label %352, label %356, !llvm.loop !23

356: ; preds = %352
%357 = trunc nsw i64 %indvars.iv.next136.i to i32
%358 = sext i32 %354 to i64
%359 = getelementptr inbounds %struct.ct_data_s, ptr %259, i64 %358
%360 = getelementptr inbounds i8, ptr %359, i64 2
%361 = load i16, ptr %360, align 2
%362 = zext i16 %361 to i32
%.not100.i = icmp eq i32 %348, %362
br i1 %.not100.i, label %.outer.i, label %363

363: ; preds = %356
%364 = zext i16 %361 to i64
%365 = sub nsw i64 %indvars.iv138.i, %364
%366 = load i16, ptr %359, align 2
%367 = zext i16 %366 to i64
%368 = mul nsw i64 %365, %367
%369 = load i64, ptr %278, align 8
%370 = add i64 %368, %369
store i64 %370, ptr %278, align 8
store i16 %349, ptr %360, align 2
%352 = getelementptr inbounds [573 x i32], ptr %62, i64 0, i64 %indvars.iv.next136.i
%353 = load i32, ptr %352, align 4
%354 = icmp sgt i32 %353, %260
br i1 %354, label %351, label %355, !llvm.loop !23

355: ; preds = %351
%356 = trunc nsw i64 %indvars.iv.next136.i to i32
%357 = sext i32 %353 to i64
%358 = getelementptr inbounds %struct.ct_data_s, ptr %259, i64 %357
%359 = getelementptr inbounds i8, ptr %358, i64 2
%360 = load i16, ptr %359, align 2
%361 = zext i16 %360 to i64
%.not100.i = icmp eq i64 %indvars.iv138.i, %361
br i1 %.not100.i, label %.outer.i, label %362

362: ; preds = %355
%363 = sub nsw i64 %indvars.iv138.i, %361
%364 = load i16, ptr %358, align 2
%365 = zext i16 %364 to i64
%366 = mul nsw i64 %363, %365
%367 = load i64, ptr %278, align 8
%368 = add i64 %366, %367
store i64 %368, ptr %278, align 8
store i16 %348, ptr %359, align 2
br label %.outer.i

.outer.i: ; preds = %363, %356
%371 = add nsw i32 %.091.ph119.i, -1
%.not99.i = icmp eq i32 %371, 0
.outer.i: ; preds = %362, %355
%369 = add nsw i32 %.091.ph119.i, -1
%.not99.i = icmp eq i32 %369, 0
br i1 %.not99.i, label %.outer.split.us.i, label %.outer.split.i, !llvm.loop !23

gen_bitlen.exit: ; preds = %.outer.split.us.i, %253, %._crit_edge.i, %.preheader.i
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3)
%invariant.gep.i = getelementptr i8, ptr %0, i64 2958
br label %373
br label %371

.preheader.i128: ; preds = %373
.preheader.i128: ; preds = %371
%.not20.i = icmp slt i32 %.2.lcssa, 0
br i1 %.not20.i, label %gen_codes.exit, label %.lr.ph.preheader.i

.lr.ph.preheader.i: ; preds = %.preheader.i128
%372 = add nuw i32 %.2.lcssa, 1
%wide.trip.count.i = zext i32 %372 to i64
%370 = add nuw i32 %.2.lcssa, 1
%wide.trip.count.i = zext i32 %370 to i64
br label %.lr.ph.i129

373: ; preds = %373, %gen_bitlen.exit
%indvars.iv.i125 = phi i64 [ 1, %gen_bitlen.exit ], [ %indvars.iv.next.i126, %373 ]
%.019.i = phi i16 [ 0, %gen_bitlen.exit ], [ %376, %373 ]
371: ; preds = %371, %gen_bitlen.exit
%indvars.iv.i125 = phi i64 [ 1, %gen_bitlen.exit ], [ %indvars.iv.next.i126, %371 ]
%.019.i = phi i16 [ 0, %gen_bitlen.exit ], [ %374, %371 ]
%gep.i = getelementptr i16, ptr %invariant.gep.i, i64 %indvars.iv.i125
%374 = load i16, ptr %gep.i, align 2
%375 = add i16 %374, %.019.i
%376 = shl i16 %375, 1
%377 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %indvars.iv.i125
store i16 %376, ptr %377, align 2
%372 = load i16, ptr %gep.i, align 2
%373 = add i16 %372, %.019.i
%374 = shl i16 %373, 1
%375 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %indvars.iv.i125
store i16 %374, ptr %375, align 2
%indvars.iv.next.i126 = add nuw nsw i64 %indvars.iv.i125, 1
%exitcond.not.i127 = icmp eq i64 %indvars.iv.next.i126, 16
br i1 %exitcond.not.i127, label %.preheader.i128, label %373, !llvm.loop !24

.lr.ph.i129: ; preds = %395, %.lr.ph.preheader.i
%indvars.iv22.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next23.i, %395 ]
%378 = getelementptr inbounds %struct.ct_data_s, ptr %4, i64 %indvars.iv22.i
%379 = getelementptr inbounds i8, ptr %378, i64 2
%380 = load i16, ptr %379, align 2
%381 = icmp eq i16 %380, 0
br i1 %381, label %395, label %382

382: ; preds = %.lr.ph.i129
%383 = zext i16 %380 to i32
%384 = zext i16 %380 to i64
%385 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %384
%386 = load i16, ptr %385, align 2
%387 = add i16 %386, 1
store i16 %387, ptr %385, align 2
br label %388

388: ; preds = %388, %382
%.07.i.i = phi i16 [ %386, %382 ], [ %391, %388 ]
%.06.i.i = phi i32 [ %383, %382 ], [ %393, %388 ]
%.0.i.i = phi i16 [ 0, %382 ], [ %392, %388 ]
%389 = and i16 %.07.i.i, 1
%390 = or disjoint i16 %.0.i.i, %389
%391 = lshr i16 %.07.i.i, 1
%392 = shl i16 %390, 1
%393 = add nsw i32 %.06.i.i, -1
%394 = icmp ugt i32 %.06.i.i, 1
br i1 %394, label %388, label %bi_reverse.exit.i, !llvm.loop !25

bi_reverse.exit.i: ; preds = %388
store i16 %390, ptr %378, align 2
br label %395

395: ; preds = %bi_reverse.exit.i, %.lr.ph.i129
br i1 %exitcond.not.i127, label %.preheader.i128, label %371, !llvm.loop !24

.lr.ph.i129: ; preds = %393, %.lr.ph.preheader.i
%indvars.iv22.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next23.i, %393 ]
%376 = getelementptr inbounds %struct.ct_data_s, ptr %4, i64 %indvars.iv22.i
%377 = getelementptr inbounds i8, ptr %376, i64 2
%378 = load i16, ptr %377, align 2
%379 = icmp eq i16 %378, 0
br i1 %379, label %393, label %380

380: ; preds = %.lr.ph.i129
%381 = zext i16 %378 to i32
%382 = zext i16 %378 to i64
%383 = getelementptr inbounds [16 x i16], ptr %3, i64 0, i64 %382
%384 = load i16, ptr %383, align 2
%385 = add i16 %384, 1
store i16 %385, ptr %383, align 2
br label %386

386: ; preds = %386, %380
%.07.i.i = phi i16 [ %384, %380 ], [ %389, %386 ]
%.06.i.i = phi i32 [ %381, %380 ], [ %391, %386 ]
%.0.i.i = phi i16 [ 0, %380 ], [ %390, %386 ]
%387 = and i16 %.07.i.i, 1
%388 = or disjoint i16 %.0.i.i, %387
%389 = lshr i16 %.07.i.i, 1
%390 = shl i16 %388, 1
%391 = add nsw i32 %.06.i.i, -1
%392 = icmp ugt i32 %.06.i.i, 1
br i1 %392, label %386, label %bi_reverse.exit.i, !llvm.loop !25

bi_reverse.exit.i: ; preds = %386
store i16 %388, ptr %376, align 2
br label %393

393: ; preds = %bi_reverse.exit.i, %.lr.ph.i129
%indvars.iv.next23.i = add nuw nsw i64 %indvars.iv22.i, 1
%exitcond25.not.i = icmp eq i64 %indvars.iv.next23.i, %wide.trip.count.i
br i1 %exitcond25.not.i, label %gen_codes.exit, label %.lr.ph.i129, !llvm.loop !26

gen_codes.exit: ; preds = %395, %.preheader.i128
gen_codes.exit: ; preds = %393, %.preheader.i128
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3)
ret void
}
Expand Down Expand Up @@ -2090,9 +2088,9 @@ define internal fastcc void @compress_block(ptr nocapture noundef %0, ptr nocapt
%61 = getelementptr inbounds [256 x i8], ptr @_length_code, i64 0, i64 %22
%62 = load i8, ptr %61, align 1
%63 = zext i8 %62 to i64
%64 = getelementptr %struct.ct_data_s, ptr %1, i64 %63
%65 = getelementptr i8, ptr %64, i64 1028
%66 = getelementptr i8, ptr %64, i64 1030
%64 = getelementptr inbounds %struct.ct_data_s, ptr %1, i64 %63
%65 = getelementptr inbounds i8, ptr %64, i64 1028
%66 = getelementptr inbounds i8, ptr %64, i64 1030
%67 = load i16, ptr %66, align 2
%68 = zext i16 %67 to i32
%69 = load i32, ptr %8, align 4
Expand Down Expand Up @@ -2392,7 +2390,7 @@ define internal fastcc void @compress_block(ptr nocapture noundef %0, ptr nocapt
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable
define i32 @_tr_tally(ptr nocapture noundef %0, i32 noundef %1, i32 noundef %2) local_unnamed_addr #3 {
define range(i32 0, 2) i32 @_tr_tally(ptr nocapture noundef %0, i32 noundef %1, i32 noundef %2) local_unnamed_addr #3 {
%4 = trunc i32 %1 to i16
%5 = getelementptr inbounds i8, ptr %0, i64 5888
%6 = load ptr, ptr %5, align 8
Expand Down
1,146 changes: 576 additions & 570 deletions bench/gromacs/optimized/xtc2.c.ll

Large diffs are not rendered by default.

4,363 changes: 2,180 additions & 2,183 deletions bench/hermes/optimized/APInt.cpp.ll

Large diffs are not rendered by default.

329 changes: 163 additions & 166 deletions bench/hyperscan/optimized/repeat.c.ll

Large diffs are not rendered by default.

63 changes: 31 additions & 32 deletions bench/icu/optimized/collationdata.ll
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,8 @@ cond.false25.i: ; preds = %cond.false20.i
%5 = load ptr, ptr %1, align 8
%shr30.i = lshr i32 %c, 11
%6 = zext nneg i32 %shr30.i to i64
%7 = getelementptr i16, ptr %5, i64 %6
%arrayidx33.i = getelementptr i8, ptr %7, i64 4160
%7 = getelementptr inbounds i16, ptr %5, i64 %6
%arrayidx33.i = getelementptr inbounds i8, ptr %7, i64 4160
%8 = load i16, ptr %arrayidx33.i, align 2
%conv34.i = zext i16 %8 to i32
%shr35.i = lshr i32 %c, 5
Expand Down Expand Up @@ -237,8 +237,8 @@ cond.false25.i39: ; preds = %cond.false20.i31
%35 = load ptr, ptr %26, align 8
%shr30.i40 = lshr i32 %c, 11
%36 = zext nneg i32 %shr30.i40 to i64
%37 = getelementptr i16, ptr %35, i64 %36
%arrayidx33.i41 = getelementptr i8, ptr %37, i64 4160
%37 = getelementptr inbounds i16, ptr %35, i64 %36
%arrayidx33.i41 = getelementptr inbounds i8, ptr %37, i64 4160
%38 = load i16, ptr %arrayidx33.i41, align 2
%conv34.i42 = zext i16 %38 to i32
%shr35.i43 = lshr i32 %c, 5
Expand Down Expand Up @@ -411,7 +411,7 @@ return: ; preds = %entry, %while.end,
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable
define noundef i32 @_ZNK6icu_7513CollationData23getFirstPrimaryForGroupEi(ptr nocapture noundef nonnull readonly align 8 dereferenceable(140) %this, i32 noundef %script) local_unnamed_addr #0 align 2 {
define noundef range(i32 0, -65535) i32 @_ZNK6icu_7513CollationData23getFirstPrimaryForGroupEi(ptr nocapture noundef nonnull readonly align 8 dereferenceable(140) %this, i32 noundef %script) local_unnamed_addr #0 align 2 {
entry:
%cmp.i = icmp slt i32 %script, 0
br i1 %cmp.i, label %cond.end, label %if.else.i
Expand Down Expand Up @@ -465,7 +465,7 @@ cond.end: ; preds = %if.else4.i, %entry,
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable
define noundef i32 @_ZNK6icu_7513CollationData14getScriptIndexEi(ptr nocapture noundef nonnull readonly align 8 dereferenceable(140) %this, i32 noundef %script) local_unnamed_addr #0 align 2 {
define noundef range(i32 0, 65536) i32 @_ZNK6icu_7513CollationData14getScriptIndexEi(ptr nocapture noundef nonnull readonly align 8 dereferenceable(140) %this, i32 noundef %script) local_unnamed_addr #0 align 2 {
entry:
%cmp = icmp slt i32 %script, 0
br i1 %cmp, label %return, label %if.else
Expand Down Expand Up @@ -509,7 +509,7 @@ return: ; preds = %return.sink.split,
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable
define noundef i32 @_ZNK6icu_7513CollationData22getLastPrimaryForGroupEi(ptr nocapture noundef nonnull readonly align 8 dereferenceable(140) %this, i32 noundef %script) local_unnamed_addr #0 align 2 {
define noundef range(i32 -1, -65536) i32 @_ZNK6icu_7513CollationData22getLastPrimaryForGroupEi(ptr nocapture noundef nonnull readonly align 8 dereferenceable(140) %this, i32 noundef %script) local_unnamed_addr #0 align 2 {
entry:
%cmp.i = icmp slt i32 %script, 0
br i1 %cmp.i, label %return, label %if.else.i
Expand Down Expand Up @@ -551,8 +551,8 @@ if.end: ; preds = %_ZNK6icu_7513Collat
%scriptStarts = getelementptr inbounds i8, ptr %this, i64 112
%5 = load ptr, ptr %scriptStarts, align 8
%6 = zext i16 %4 to i64
%7 = getelementptr i16, ptr %5, i64 %6
%arrayidx = getelementptr i8, ptr %7, i64 2
%7 = getelementptr inbounds i16, ptr %5, i64 %6
%arrayidx = getelementptr inbounds i8, ptr %7, i64 2
%8 = load i16, ptr %arrayidx, align 2
%conv = zext i16 %8 to i32
%shl = shl nuw i32 %conv, 16
Expand Down Expand Up @@ -588,7 +588,7 @@ lor.lhs.false: ; preds = %entry
br i1 %cmp5.not, label %while.cond.preheader, label %return

while.cond.preheader: ; preds = %lor.lhs.false
%6 = trunc i32 %shr to i16
%6 = trunc nuw i32 %shr to i16
br label %while.cond

while.cond: ; preds = %while.cond.preheader, %while.cond
Expand All @@ -600,29 +600,28 @@ while.cond: ; preds = %while.cond.preheade
br i1 %cmp10.not, label %for.cond.preheader, label %while.cond, !llvm.loop !6

for.cond.preheader: ; preds = %while.cond
%8 = trunc i64 %indvars.iv to i32
%numScripts = getelementptr inbounds i8, ptr %this, i64 100
%9 = load i32, ptr %numScripts, align 4
%cmp1117 = icmp sgt i32 %9, 0
%8 = load i32, ptr %numScripts, align 4
%cmp1117 = icmp sgt i32 %8, 0
%scriptsIndex = getelementptr inbounds i8, ptr %this, i64 104
%10 = load ptr, ptr %scriptsIndex, align 8
%9 = load ptr, ptr %scriptsIndex, align 8
br i1 %cmp1117, label %for.body.lr.ph, label %for.cond20.preheader

for.body.lr.ph: ; preds = %for.cond.preheader
%wide.trip.count = zext nneg i32 %9 to i64
%wide.trip.count = zext nneg i32 %8 to i64
br label %for.body

for.cond20.preheader: ; preds = %for.inc, %for.cond.preheader
%11 = sext i32 %9 to i64
%invariant.gep = getelementptr i16, ptr %10, i64 %11
%10 = sext i32 %8 to i64
%invariant.gep = getelementptr i16, ptr %9, i64 %10
br label %for.body22

for.body: ; preds = %for.body.lr.ph, %for.inc
%indvars.iv24 = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next25, %for.inc ]
%arrayidx13 = getelementptr inbounds i16, ptr %10, i64 %indvars.iv24
%12 = load i16, ptr %arrayidx13, align 2
%conv14 = zext i16 %12 to i32
%cmp15 = icmp eq i32 %8, %conv14
%arrayidx13 = getelementptr inbounds i16, ptr %9, i64 %indvars.iv24
%11 = load i16, ptr %arrayidx13, align 2
%12 = zext i16 %11 to i64
%cmp15 = icmp eq i64 %indvars.iv, %12
br i1 %cmp15, label %return.loopexit20, label %for.inc

for.inc: ; preds = %for.body
Expand All @@ -634,13 +633,13 @@ for.body22: ; preds = %for.cond20.preheade
%indvars.iv27 = phi i64 [ 0, %for.cond20.preheader ], [ %indvars.iv.next28, %for.inc33 ]
%gep = getelementptr i16, ptr %invariant.gep, i64 %indvars.iv27
%13 = load i16, ptr %gep, align 2
%conv28 = zext i16 %13 to i32
%cmp29 = icmp eq i32 %8, %conv28
%14 = zext i16 %13 to i64
%cmp29 = icmp eq i64 %indvars.iv, %14
br i1 %cmp29, label %if.then30, label %for.inc33

if.then30: ; preds = %for.body22
%14 = trunc i64 %indvars.iv27 to i32
%add31 = or disjoint i32 %14, 4096
%15 = trunc nuw nsw i64 %indvars.iv27 to i32
%add31 = or disjoint i32 %15, 4096
br label %return

for.inc33: ; preds = %for.body22
Expand All @@ -649,11 +648,11 @@ for.inc33: ; preds = %for.body22
br i1 %exitcond31.not, label %return, label %for.body22, !llvm.loop !8

return.loopexit20: ; preds = %for.body
%15 = trunc i64 %indvars.iv24 to i32
%16 = trunc nuw nsw i64 %indvars.iv24 to i32
br label %return

return: ; preds = %for.inc33, %return.loopexit20, %entry, %lor.lhs.false, %if.then30
%retval.0 = phi i32 [ %add31, %if.then30 ], [ -1, %lor.lhs.false ], [ -1, %entry ], [ %15, %return.loopexit20 ], [ -1, %for.inc33 ]
%retval.0 = phi i32 [ %add31, %if.then30 ], [ -1, %lor.lhs.false ], [ -1, %entry ], [ %16, %return.loopexit20 ], [ -1, %for.inc33 ]
ret i32 %retval.0
}

Expand Down Expand Up @@ -741,7 +740,7 @@ if.then14: ; preds = %for.body
if.then16: ; preds = %if.then14
%idxprom17 = sext i32 %length.020 to i64
%arrayidx18 = getelementptr inbounds i32, ptr %dest, i64 %idxprom17
%9 = trunc i64 %indvars.iv to i32
%9 = trunc nuw nsw i64 %indvars.iv to i32
store i32 %9, ptr %arrayidx18, align 4
%.pre.pre = load i32, ptr %numScripts.i, align 4
br label %if.end19
Expand Down Expand Up @@ -884,7 +883,7 @@ for.body43: ; preds = %for.cond41.preheade
br i1 %cmp51.not, label %for.inc59, label %land.lhs.true52

land.lhs.true52: ; preds = %for.body43
%19 = trunc i64 %indvars.iv224 to i32
%19 = trunc nuw nsw i64 %indvars.iv224 to i32
%shl53 = shl nuw nsw i32 1, %19
%and = and i32 %shl53, %specials.0.lcssa
%cmp54 = icmp eq i32 %and, 0
Expand Down Expand Up @@ -1038,7 +1037,7 @@ if.end100: ; preds = %_ZNK6icu_7513Collat
br i1 %cmp104.not, label %if.end106, label %for.end206.sink.split

if.end106: ; preds = %if.end100
%35 = trunc i64 %indvars.iv.next235 to i32
%35 = trunc nsw i64 %indvars.iv.next235 to i32
%36 = getelementptr i16, ptr %10, i64 %idxprom101
%arrayidx.i83 = getelementptr i8, ptr %36, i64 2
%37 = load i16, ptr %arrayidx.i83, align 2
Expand Down Expand Up @@ -1104,7 +1103,7 @@ if.end117: ; preds = %_ZNK6icu_7513Collat
br i1 %cmp121.not, label %if.end123, label %for.end206.sink.split

if.end123: ; preds = %if.end117
%43 = trunc i64 %indvars.iv.next230 to i32
%43 = trunc nsw i64 %indvars.iv.next230 to i32
%arrayidx.i115 = getelementptr inbounds i16, ptr %10, i64 %idxprom118
%44 = load i16, ptr %arrayidx.i115, align 2
%conv.i116 = zext i16 %44 to i32
Expand Down Expand Up @@ -1244,7 +1243,7 @@ while.end184.thread.if.then190_crit_edge: ; preds = %while.end184.thread
br label %if.then190

if.then190.loopexit: ; preds = %if.else
%56 = trunc i64 %indvars.iv242 to i32
%56 = trunc nsw i64 %indvars.iv242 to i32
br label %if.then190

if.then190: ; preds = %while.end184.thread.if.then190_crit_edge, %if.then190.loopexit
Expand Down
31 changes: 15 additions & 16 deletions bench/icu/optimized/uarrsort.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ $__clang_call_terminate = comdat any
$_ZN6icu_7515MaybeStackArrayI11max_align_tLi14EED2Ev = comdat any

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable
define i32 @uprv_uint16Comparator_75(ptr nocapture noundef readnone %context, ptr nocapture noundef readonly %left, ptr nocapture noundef readonly %right) local_unnamed_addr #0 {
define range(i32 -65535, 65536) i32 @uprv_uint16Comparator_75(ptr nocapture noundef readnone %context, ptr nocapture noundef readonly %left, ptr nocapture noundef readonly %right) local_unnamed_addr #0 {
entry:
%0 = load i16, ptr %left, align 2
%conv = zext i16 %0 to i32
Expand All @@ -34,7 +34,7 @@ entry:
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable
define i32 @uprv_uint32Comparator_75(ptr nocapture noundef readnone %context, ptr nocapture noundef readonly %left, ptr nocapture noundef readonly %right) local_unnamed_addr #0 {
define range(i32 -1, 2) i32 @uprv_uint32Comparator_75(ptr nocapture noundef readnone %context, ptr nocapture noundef readonly %left, ptr nocapture noundef readonly %right) local_unnamed_addr #0 {
entry:
%0 = load i32, ptr %left, align 4
%1 = load i32, ptr %right, align 4
Expand Down Expand Up @@ -106,7 +106,7 @@ if.end22: ; preds = %while.body10, %if.e
br i1 %exitcond.not, label %while.end23, label %while.body10, !llvm.loop !6

while.end23.loopexit.split.loop.exit: ; preds = %if.else18
%3 = trunc i64 %indvars.iv to i32
%3 = trunc nsw i64 %indvars.iv to i32
br label %while.end23

while.end23: ; preds = %if.end22, %while.end23.loopexit.split.loop.exit, %while.cond8.preheader
Expand Down Expand Up @@ -233,10 +233,10 @@ for.body.lr.ph.i.i: ; preds = %if.then17, %invoke.

for.body.i.i: ; preds = %for.inc.i.i, %for.body.lr.ph.i.i
%indvars.iv.i.i = phi i64 [ 1, %for.body.lr.ph.i.i ], [ %indvars.iv.next.i.i, %for.inc.i.i ]
%6 = mul nsw i64 %indvars.iv.i.i, %5
%6 = mul nuw nsw i64 %indvars.iv.i.i, %5
%add.ptr.i.i = getelementptr inbounds i8, ptr %array, i64 %6
%cmp119.i.i.i = icmp ugt i64 %indvars.iv.i.i, 8
%7 = trunc i64 %indvars.iv.i.i to i32
%7 = trunc nuw nsw i64 %indvars.iv.i.i to i32
br i1 %cmp119.i.i.i, label %while.body.i.i.i, label %while.body10.preheader.i.i.i

while.cond8.preheader.i.i.i: ; preds = %call.i.i.noexc.i
Expand Down Expand Up @@ -299,7 +299,7 @@ if.end22.i.i.i: ; preds = %if.else18.i.i.i, %c
br i1 %exitcond.not.i.i.i, label %uprv_stableBinarySearch_75.exit.i.i, label %while.body10.i.i.i, !llvm.loop !6

while.end23.loopexit.split.loop.exit.i.i.i: ; preds = %if.else18.i.i.i
%10 = trunc i64 %indvars.iv.i.i.i to i32
%10 = trunc nsw i64 %indvars.iv.i.i.i to i32
br label %uprv_stableBinarySearch_75.exit.i.i

uprv_stableBinarySearch_75.exit.i.i: ; preds = %if.end22.i.i.i, %while.end23.loopexit.split.loop.exit.i.i.i, %while.cond8.preheader.i.i.i
Expand Down Expand Up @@ -514,7 +514,7 @@ for.body.i: ; preds = %for.inc.i, %for.bod
%1 = mul nsw i64 %indvars.iv.i, %0
%add.ptr.i = getelementptr inbounds i8, ptr %add.ptr, i64 %1
%cmp119.i.i = icmp ugt i64 %indvars.iv.i, 8
%2 = trunc i64 %indvars.iv.i to i32
%2 = trunc nuw nsw i64 %indvars.iv.i to i32
br i1 %cmp119.i.i, label %while.body.i.i, label %while.body10.preheader.i.i

while.cond8.preheader.i.i: ; preds = %while.body.i.i
Expand Down Expand Up @@ -571,7 +571,7 @@ if.end22.i.i: ; preds = %if.else18.i.i, %whi
br i1 %exitcond.not.i.i, label %uprv_stableBinarySearch_75.exit.i, label %while.body10.i.i, !llvm.loop !6

while.end23.loopexit.split.loop.exit.i.i: ; preds = %if.else18.i.i
%5 = trunc i64 %indvars.iv.i.i to i32
%5 = trunc nsw i64 %indvars.iv.i.i to i32
br label %uprv_stableBinarySearch_75.exit.i

uprv_stableBinarySearch_75.exit.i: ; preds = %if.end22.i.i, %while.end23.loopexit.split.loop.exit.i.i, %while.cond8.preheader.i.i
Expand Down Expand Up @@ -627,7 +627,7 @@ while.cond: ; preds = %while.cond, %do.bod
%add.ptr11 = getelementptr inbounds i8, ptr %array, i64 %9
%call = tail call noundef i32 %cmp(ptr noundef %context, ptr noundef %add.ptr11, ptr noundef %px)
%cmp12 = icmp slt i32 %call, 0
%indvars.iv.next = add i64 %indvars.iv, 1
%indvars.iv.next = add nsw i64 %indvars.iv, 1
br i1 %cmp12, label %while.cond, label %while.cond13.preheader, !llvm.loop !8

while.cond13.preheader: ; preds = %while.cond
Expand All @@ -636,22 +636,20 @@ while.cond13.preheader: ; preds = %while.cond

while.cond13: ; preds = %while.cond13.preheader, %while.cond13
%indvars.iv89 = phi i64 [ %10, %while.cond13.preheader ], [ %indvars.iv.next90, %while.cond13 ]
%indvars.iv.next90 = add i64 %indvars.iv89, -1
%indvars.iv.next90 = add nsw i64 %indvars.iv89, -1
%11 = mul nsw i64 %indvars.iv.next90, %0
%add.ptr17 = getelementptr inbounds i8, ptr %array, i64 %11
%call18 = tail call noundef i32 %cmp(ptr noundef %context, ptr noundef %px, ptr noundef %add.ptr17)
%cmp19 = icmp slt i32 %call18, 0
br i1 %cmp19, label %while.cond13, label %while.end21, !llvm.loop !9

while.end21: ; preds = %while.cond13
%12 = trunc i64 %indvars.iv to i32
%13 = trunc i64 %indvars.iv89 to i32
%14 = trunc i64 %indvars.iv.next90 to i32
%cmp22 = icmp slt i32 %12, %13
%12 = trunc nsw i64 %indvars.iv to i32
%cmp22 = icmp slt i64 %indvars.iv, %indvars.iv89
br i1 %cmp22, label %if.then23, label %do.cond

if.then23: ; preds = %while.end21
%cmp25 = icmp slt i32 %12, %14
%cmp25 = icmp slt i64 %indvars.iv, %indvars.iv.next90
br i1 %cmp25, label %do.body27, label %if.end52

do.body27: ; preds = %if.then23
Expand All @@ -674,7 +672,8 @@ if.end52: ; preds = %do.body27, %if.then

do.cond: ; preds = %while.end21, %if.end52
%left.2 = phi i32 [ %inc53, %if.end52 ], [ %12, %while.end21 ]
%right.2 = phi i32 [ %14, %if.end52 ], [ %13, %while.end21 ]
%right.2.in = phi i64 [ %indvars.iv.next90, %if.end52 ], [ %indvars.iv89, %while.end21 ]
%right.2 = trunc i64 %right.2.in to i32
%cmp55 = icmp slt i32 %left.2, %right.2
br i1 %cmp55, label %do.body8, label %do.end56, !llvm.loop !10

Expand Down
341 changes: 166 additions & 175 deletions bench/icu/optimized/ubidiln.ll

Large diffs are not rendered by default.

414 changes: 206 additions & 208 deletions bench/icu/optimized/unames.ll

Large diffs are not rendered by default.

291 changes: 145 additions & 146 deletions bench/imgui/optimized/imgui_draw.cpp.ll

Large diffs are not rendered by default.

908 changes: 453 additions & 455 deletions bench/imgui/optimized/imgui_tables.cpp.ll

Large diffs are not rendered by default.

38 changes: 18 additions & 20 deletions bench/libquic/optimized/trees.c.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1885,44 +1885,42 @@ for.body97.i: ; preds = %for.cond94.preheade

while.cond102.outer.split.lr.ph.i: ; preds = %for.body97.i
%conv101.i = zext i16 %99 to i32
%100 = trunc nsw i64 %indvars.iv102.i to i32
%conv134.i = trunc i64 %indvars.iv102.i to i16
br label %while.cond102.outer.split.i

while.cond102.outer.split.us.i: ; preds = %if.end138.i, %for.body97.i
%h.2.ph.lcssa.i = phi i32 [ %h.191.i, %for.body97.i ], [ %104, %if.end138.i ]
%h.2.ph.lcssa.i = phi i32 [ %h.191.i, %for.body97.i ], [ %103, %if.end138.i ]
%indvars.iv.next103.i = add nsw i64 %indvars.iv102.i, -1
%101 = and i64 %indvars.iv.next103.i, 4294967295
%cmp95.not.i = icmp eq i64 %101, 0
%100 = and i64 %indvars.iv.next103.i, 4294967295
%cmp95.not.i = icmp eq i64 %100, 0
br i1 %cmp95.not.i, label %gen_bitlen.exit, label %for.body97.i, !llvm.loop !23

while.cond102.outer.split.i: ; preds = %if.end138.i, %while.cond102.outer.split.lr.ph.i
%h.2.ph87.i = phi i32 [ %h.191.i, %while.cond102.outer.split.lr.ph.i ], [ %104, %if.end138.i ]
%h.2.ph87.i = phi i32 [ %h.191.i, %while.cond102.outer.split.lr.ph.i ], [ %103, %if.end138.i ]
%n.0.ph86.i = phi i32 [ %conv101.i, %while.cond102.outer.split.lr.ph.i ], [ %dec139.i, %if.end138.i ]
%102 = sext i32 %h.2.ph87.i to i64
%101 = sext i32 %h.2.ph87.i to i64
br label %while.cond102.i

while.cond102.i: ; preds = %while.cond102.i, %while.cond102.outer.split.i
%indvars.iv99.i = phi i64 [ %102, %while.cond102.outer.split.i ], [ %indvars.iv.next100.i, %while.cond102.i ]
%indvars.iv99.i = phi i64 [ %101, %while.cond102.outer.split.i ], [ %indvars.iv.next100.i, %while.cond102.i ]
%indvars.iv.next100.i = add nsw i64 %indvars.iv99.i, -1
%arrayidx109.i = getelementptr inbounds [573 x i32], ptr %heap45, i64 0, i64 %indvars.iv.next100.i
%103 = load i32, ptr %arrayidx109.i, align 4
%cmp110.i = icmp sgt i32 %103, %75
%102 = load i32, ptr %arrayidx109.i, align 4
%cmp110.i = icmp sgt i32 %102, %75
br i1 %cmp110.i, label %while.cond102.i, label %if.end113.i, !llvm.loop !24

if.end113.i: ; preds = %while.cond102.i
%104 = trunc nsw i64 %indvars.iv.next100.i to i32
%idxprom114.i = sext i32 %103 to i64
%103 = trunc nsw i64 %indvars.iv.next100.i to i32
%idxprom114.i = sext i32 %102 to i64
%arrayidx115.i = getelementptr inbounds %struct.ct_data_s, ptr %74, i64 %idxprom114.i
%dl116.i = getelementptr inbounds i8, ptr %arrayidx115.i, i64 2
%105 = load i16, ptr %dl116.i, align 2
%conv117.i = zext i16 %105 to i32
%cmp118.not.i = icmp eq i32 %100, %conv117.i
%104 = load i16, ptr %dl116.i, align 2
%105 = zext i16 %104 to i64
%cmp118.not.i = icmp eq i64 %indvars.iv102.i, %105
br i1 %cmp118.not.i, label %if.end138.i, label %if.then120.i

if.then120.i: ; preds = %if.end113.i
%conv125.i = zext i16 %105 to i64
%sub126.i = sub nsw i64 %indvars.iv102.i, %conv125.i
%sub126.i = sub nsw i64 %indvars.iv102.i, %105
%106 = load i16, ptr %arrayidx115.i, align 2
%conv130.i = zext i16 %106 to i64
%mul131.i = mul nsw i64 %sub126.i, %conv130.i
Expand Down Expand Up @@ -2097,9 +2095,9 @@ if.else56: ; preds = %do.body
%arrayidx58 = getelementptr inbounds [256 x i8], ptr @MOZ_Z__length_code, i64 0, i64 %idxprom7
%17 = load i8, ptr %arrayidx58, align 1
%18 = zext i8 %17 to i64
%19 = getelementptr %struct.ct_data_s, ptr %ltree, i64 %18
%arrayidx64 = getelementptr i8, ptr %19, i64 1028
%dl65 = getelementptr i8, ptr %19, i64 1030
%19 = getelementptr inbounds %struct.ct_data_s, ptr %ltree, i64 %18
%arrayidx64 = getelementptr inbounds i8, ptr %19, i64 1028
%dl65 = getelementptr inbounds i8, ptr %19, i64 1030
%20 = load i16, ptr %dl65, align 2
%conv66 = zext i16 %20 to i32
%21 = load i32, ptr %bi_valid67, align 4
Expand Down Expand Up @@ -2399,7 +2397,7 @@ if.end400: ; preds = %if.else388, %if.the
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable
define dso_local i32 @MOZ_Z__tr_tally(ptr nocapture noundef %s, i32 noundef %dist, i32 noundef %lc) local_unnamed_addr #3 {
define dso_local range(i32 0, 2) i32 @MOZ_Z__tr_tally(ptr nocapture noundef %s, i32 noundef %dist, i32 noundef %lc) local_unnamed_addr #3 {
entry:
%conv = trunc i32 %dist to i16
%d_buf = getelementptr inbounds i8, ptr %s, i64 7016
Expand Down
468 changes: 233 additions & 235 deletions bench/linux/optimized/drm_dp_helper.ll

Large diffs are not rendered by default.

118 changes: 58 additions & 60 deletions bench/lua/optimized/lparser.ll

Large diffs are not rendered by default.

149 changes: 74 additions & 75 deletions bench/luajit/optimized/lj_api.ll

Large diffs are not rendered by default.

149 changes: 74 additions & 75 deletions bench/luajit/optimized/lj_api_dyn.ll

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions bench/luajit/optimized/lj_meta.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1997,12 +1997,14 @@ mmcall.exit: ; preds = %if.end, %if.then.i4
br label %return

if.else: ; preds = %lor.lhs.false
%cmp25 = icmp eq i32 %conv, %conv3
%cmp25 = icmp eq i64 %shr, %shr2
br i1 %cmp25, label %if.then27, label %if.else78

if.then27: ; preds = %if.else
%cmp34 = icmp eq i32 %conv, -5
br i1 %cmp34, label %if.then36, label %trymt
%cmp30 = icmp eq i32 %conv, -5
%cmp34 = icmp eq i32 %conv3, -5
%or.cond = and i1 %cmp30, %cmp34
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regression.

br i1 %or.cond, label %if.then36, label %trymt

if.then36: ; preds = %if.then27
%and37 = and i64 %0, 140737488355327
Expand Down
8 changes: 5 additions & 3 deletions bench/luajit/optimized/lj_meta_dyn.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1997,12 +1997,14 @@ mmcall.exit: ; preds = %if.end, %if.then.i4
br label %return

if.else: ; preds = %lor.lhs.false
%cmp25 = icmp eq i32 %conv, %conv3
%cmp25 = icmp eq i64 %shr, %shr2
br i1 %cmp25, label %if.then27, label %if.else78

if.then27: ; preds = %if.else
%cmp34 = icmp eq i32 %conv, -5
br i1 %cmp34, label %if.then36, label %trymt
%cmp30 = icmp eq i32 %conv, -5
%cmp34 = icmp eq i32 %conv3, -5
%or.cond = and i1 %cmp30, %cmp34
br i1 %or.cond, label %if.then36, label %trymt

if.then36: ; preds = %if.then27
%and37 = and i64 %0, 140737488355327
Expand Down
12 changes: 6 additions & 6 deletions bench/luajit/optimized/lj_obj.ll
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@ target triple = "x86_64-unknown-linux-gnu"
@lj_obj_itypename = hidden local_unnamed_addr constant [14 x ptr] [ptr @.str.1, ptr @.str.2, ptr @.str.2, ptr @.str.3, ptr @.str.5, ptr @.str.11, ptr @.str.8, ptr @.str.9, ptr @.str.7, ptr @.str.12, ptr @.str.10, ptr @.str.6, ptr @.str.3, ptr @.str.4], align 16

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable
define hidden i32 @lj_obj_equal(ptr nocapture noundef readonly %o1, ptr nocapture noundef readonly %o2) local_unnamed_addr #0 {
define hidden range(i32 0, 2) i32 @lj_obj_equal(ptr nocapture noundef readonly %o1, ptr nocapture noundef readonly %o2) local_unnamed_addr #0 {
entry:
%0 = load i64, ptr %o1, align 8
%shr = ashr i64 %0, 47
%conv = trunc i64 %shr to i32
%conv = trunc nsw i64 %shr to i32
%1 = load i64, ptr %o2, align 8
%shr1 = ashr i64 %1, 47
%conv2 = trunc i64 %shr1 to i32
%cmp = icmp eq i32 %conv, %conv2
%cmp = icmp eq i64 %shr, %shr1
%2 = bitcast i64 %0 to double
%3 = bitcast i64 %1 to double
br i1 %cmp, label %if.then, label %if.else
Expand All @@ -46,9 +45,10 @@ if.then13: ; preds = %if.end
br label %return

if.else: ; preds = %entry
%conv2 = trunc nsw i64 %shr1 to i32
%cmp20 = icmp ult i32 %conv, -13
%cmp24 = icmp ult i32 %conv2, -13
%or.cond = and i1 %cmp20, %cmp24
%or.cond = select i1 %cmp20, i1 %cmp24, i1 false
br i1 %or.cond, label %if.end28, label %return

if.end28: ; preds = %if.else, %if.end
Expand All @@ -66,7 +66,7 @@ define hidden ptr @lj_obj_ptr(ptr nocapture noundef readonly %g, ptr nocapture n
entry:
%0 = load i64, ptr %o, align 8
%shr = ashr i64 %0, 47
%conv = trunc i64 %shr to i32
%conv = trunc nsw i64 %shr to i32
switch i32 %conv, label %if.else16 [
i32 -13, label %if.then
i32 -4, label %if.then6
Expand Down
12 changes: 6 additions & 6 deletions bench/luajit/optimized/lj_obj_dyn.ll
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@ target triple = "x86_64-unknown-linux-gnu"
@lj_obj_itypename = hidden local_unnamed_addr constant [14 x ptr] [ptr @.str.1, ptr @.str.2, ptr @.str.2, ptr @.str.3, ptr @.str.5, ptr @.str.11, ptr @.str.8, ptr @.str.9, ptr @.str.7, ptr @.str.12, ptr @.str.10, ptr @.str.6, ptr @.str.3, ptr @.str.4], align 16

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable
define hidden i32 @lj_obj_equal(ptr nocapture noundef readonly %o1, ptr nocapture noundef readonly %o2) local_unnamed_addr #0 {
define hidden range(i32 0, 2) i32 @lj_obj_equal(ptr nocapture noundef readonly %o1, ptr nocapture noundef readonly %o2) local_unnamed_addr #0 {
entry:
%0 = load i64, ptr %o1, align 8
%shr = ashr i64 %0, 47
%conv = trunc i64 %shr to i32
%conv = trunc nsw i64 %shr to i32
%1 = load i64, ptr %o2, align 8
%shr1 = ashr i64 %1, 47
%conv2 = trunc i64 %shr1 to i32
%cmp = icmp eq i32 %conv, %conv2
%cmp = icmp eq i64 %shr, %shr1
%2 = bitcast i64 %0 to double
%3 = bitcast i64 %1 to double
br i1 %cmp, label %if.then, label %if.else
Expand All @@ -46,9 +45,10 @@ if.then13: ; preds = %if.end
br label %return

if.else: ; preds = %entry
%conv2 = trunc nsw i64 %shr1 to i32
%cmp20 = icmp ult i32 %conv, -13
%cmp24 = icmp ult i32 %conv2, -13
%or.cond = and i1 %cmp20, %cmp24
%or.cond = select i1 %cmp20, i1 %cmp24, i1 false
br i1 %or.cond, label %if.end28, label %return

if.end28: ; preds = %if.else, %if.end
Expand All @@ -66,7 +66,7 @@ define hidden ptr @lj_obj_ptr(ptr nocapture noundef readonly %g, ptr nocapture n
entry:
%0 = load i64, ptr %o, align 8
%shr = ashr i64 %0, 47
%conv = trunc i64 %shr to i32
%conv = trunc nsw i64 %shr to i32
switch i32 %conv, label %if.else16 [
i32 -13, label %if.then
i32 -4, label %if.then6
Expand Down
Loading