Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 14 additions & 22 deletions bench/abc/optimized/abcRenode.ll
Original file line number Diff line number Diff line change
Expand Up @@ -183,17 +183,16 @@ define internal range(i32 -2147483648, 2147483647) i32 @Abc_NtkRenodeEvalBdd(ptr
%8 = and i64 %7, 255
%9 = getelementptr i32, ptr %4, i64 %8
call void @llvm.lifetime.start.p0(ptr nonnull %3)
%10 = and i64 %6, 4278190080
%.not = icmp eq i64 %10, 0
%10 = trunc i64 %6 to i32
%11 = lshr i32 %10, 24
%.not = icmp eq i32 %11, 0
br i1 %.not, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader: ; preds = %2
%11 = lshr i64 %6, 24
%12 = lshr i64 %6, 24
%13 = and i64 %12, 255
%umax = tail call i64 @llvm.umax.i64(i64 %13, i64 1)
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %9, i8 -100, i64 %umax, i1 false), !tbaa !43
%wide.trip.count = and i64 %11, 255
tail call void @llvm.memset.p0.i64(ptr align 1 %9, i8 -100, i64 %13, i1 false), !tbaa !43
%wide.trip.count = zext nneg i32 %11 to i64
br label %.lr.ph

.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph
Expand Down Expand Up @@ -291,13 +290,13 @@ If_CutTruth.exit: ; preds = %.lr.ph.i.i.i, %.lr.
%57 = call ptr @Extra_Reorder(ptr noundef %55, ptr noundef %56, ptr noundef %54, ptr noundef nonnull %3) #8
call void @Cudd_Ref(ptr noundef %57) #8
%.val29 = load i64, ptr %5, align 4
%58 = and i64 %.val29, 4278190080
%.not36 = icmp eq i64 %58, 0
%58 = trunc i64 %.val29 to i32
%59 = lshr i32 %58, 24
%.not36 = icmp eq i32 %59, 0
br i1 %.not36, label %._crit_edge35, label %.lr.ph34.preheader

.lr.ph34.preheader: ; preds = %If_CutTruth.exit
%59 = lshr i64 %.val29, 24
%wide.trip.count43 = and i64 %59, 255
%wide.trip.count41 = zext nneg i32 %59 to i64
br label %.lr.ph34

.lr.ph34: ; preds = %.lr.ph34.preheader, %67
Expand All @@ -318,7 +317,7 @@ If_CutTruth.exit: ; preds = %.lr.ph.i.i.i, %.lr.
67: ; preds = %.lr.ph34, %63
%.124 = phi i8 [ %64, %63 ], [ %.02332, %.lr.ph34 ]
%indvars.iv.next41 = add nuw nsw i64 %indvars.iv40, 1
%exitcond44.not = icmp eq i64 %indvars.iv.next41, %wide.trip.count43
%exitcond44.not = icmp eq i64 %indvars.iv.next41, %wide.trip.count41
br i1 %exitcond44.not, label %._crit_edge35, label %.lr.ph34, !llvm.loop !75

._crit_edge35: ; preds = %67, %If_CutTruth.exit
Expand Down Expand Up @@ -347,8 +346,7 @@ define internal i32 @Abc_NtkRenodeEvalSop(ptr noundef readonly captures(none) %0
%9 = getelementptr i32, ptr %8, i64 %6
%10 = lshr i64 %4, 24
%11 = and i64 %10, 255
%umax = tail call i64 @llvm.umax.i64(i64 %11, i64 1)
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %9, i8 1, i64 %umax, i1 false), !tbaa !43
tail call void @llvm.memset.p0.i64(ptr align 1 %9, i8 1, i64 %11, i1 false), !tbaa !43
br label %._crit_edge

._crit_edge: ; preds = %.lr.ph.preheader, %2
Expand Down Expand Up @@ -461,8 +459,7 @@ define internal i32 @Abc_NtkRenodeEvalCnf(ptr noundef readonly captures(none) %0
%9 = getelementptr i32, ptr %8, i64 %6
%10 = lshr i64 %4, 24
%11 = and i64 %10, 255
%umax = tail call i64 @llvm.umax.i64(i64 %11, i64 1)
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %9, i8 1, i64 %umax, i1 false), !tbaa !43
tail call void @llvm.memset.p0.i64(ptr align 1 %9, i8 1, i64 %11, i1 false), !tbaa !43
br label %._crit_edge

._crit_edge: ; preds = %.lr.ph.preheader, %2
Expand Down Expand Up @@ -1003,8 +1000,7 @@ define internal range(i32 -2147483648, 4096) i32 @Abc_NtkRenodeEvalMv(ptr nounde
%9 = getelementptr i32, ptr %8, i64 %6
%10 = lshr i64 %4, 24
%11 = and i64 %10, 255
%umax = tail call i64 @llvm.umax.i64(i64 %11, i64 1)
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %9, i8 1, i64 %umax, i1 false), !tbaa !43
tail call void @llvm.memset.p0.i64(ptr align 1 %9, i8 1, i64 %11, i1 false), !tbaa !43
br label %._crit_edge

._crit_edge: ; preds = %.lr.ph.preheader, %2
Expand Down Expand Up @@ -1631,8 +1627,7 @@ If_CutTruth.exit: ; preds = %.lr.ph.i.i.i, %.lr.
.lr.ph37.preheader: ; preds = %.preheader
%51 = lshr i64 %.val26, 24
%52 = and i64 %51, 255
%umax = tail call i64 @llvm.umax.i64(i64 %52, i64 1)
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %8, i8 100, i64 %umax, i1 false), !tbaa !43
tail call void @llvm.memset.p0.i64(ptr align 1 %8, i8 100, i64 %52, i1 false), !tbaa !43
br label %.loopexit

53: ; preds = %If_CutTruth.exit
Expand Down Expand Up @@ -1723,9 +1718,6 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #5
; Function Attrs: nofree nounwind
declare noundef i32 @puts(ptr noundef readonly captures(none)) local_unnamed_addr #6

; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #7

; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #7

Expand Down
8 changes: 2 additions & 6 deletions bench/abc/optimized/ifUtil.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1078,12 +1078,11 @@ Vec_IntPush.exit: ; preds = %Vec_IntPush.exit.si
%79 = sext i32 %59 to i64
%80 = getelementptr inbounds i32, ptr %77, i64 %79
store i32 %57, ptr %80, align 4, !tbaa !64
%.not46 = icmp ult i32 %56, 16777216
%.not46 = icmp eq i32 %57, 0
br i1 %.not46, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader: ; preds = %Vec_IntPush.exit
%umax = tail call i32 @llvm.umax.i32(i32 %57, i32 1)
%wide.trip.count = zext nneg i32 %umax to i64
%wide.trip.count = zext nneg i32 %57 to i64
br label %.lr.ph

.lr.ph: ; preds = %.lr.ph.preheader, %Vec_IntPush.exit34
Expand Down Expand Up @@ -1715,9 +1714,6 @@ declare i32 @llvm.smax.i32(i32, i32) #9
; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #10

; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #9

attributes #0 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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
25 changes: 12 additions & 13 deletions bench/abc/optimized/ivyFraig.ll
Original file line number Diff line number Diff line change
Expand Up @@ -8415,6 +8415,7 @@ Abc_Clock.exit: ; preds = %3, %8
17: ; preds = %Abc_Clock.exit
%18 = getelementptr inbounds nuw i8, ptr %2, i64 8
%19 = load i32, ptr %18, align 8
%20 = lshr i32 %19, 11
%.not28 = icmp eq ptr %1, null
br i1 %.not28, label %20, label %.thread

Expand All @@ -8429,26 +8430,24 @@ Abc_Clock.exit: ; preds = %3, %8
br label %.thread35

20: ; preds = %17
%.not49 = icmp ult i32 %19, 2048
%.not49 = icmp eq i32 %20, 0
br i1 %.not49, label %.thread45, label %.thread61

.thread61: ; preds = %20
%.pre55 = lshr i32 %19, 11
%21 = uitofp nneg i32 %.pre55 to double
%22 = load ptr, ptr %0, align 8, !tbaa !85
%23 = getelementptr inbounds nuw i8, ptr %22, i64 24
%24 = load double, ptr %23, align 8, !tbaa !12
%25 = fsub double 1.000000e+00, %24
%26 = fmul double %25, %21
%27 = fptosi double %26 to i32
%22 = uitofp nneg i32 %20 to double
%23 = load ptr, ptr %0, align 8, !tbaa !85
%24 = getelementptr inbounds nuw i8, ptr %23, i64 24
%25 = load double, ptr %24, align 8, !tbaa !12
%26 = fsub double 1.000000e+00, %25
%27 = fmul double %26, %22
%28 = fptosi double %27 to i32
br label %.thread48

.thread: ; preds = %17
%28 = lshr i32 %19, 11
%29 = getelementptr inbounds nuw i8, ptr %1, i64 8
%30 = load i32, ptr %29, align 8
%31 = lshr i32 %30, 11
%spec.select = call i32 @llvm.umax.i32(i32 %28, i32 %31)
%spec.select = call i32 @llvm.umax.i32(i32 %20, i32 %31)
br label %.thread35

.thread45: ; preds = %20, %.thread36
Expand Down Expand Up @@ -8483,8 +8482,8 @@ Abc_Clock.exit: ; preds = %3, %8
br i1 %.not, label %.thread47, label %.thread48

.thread48: ; preds = %.thread61, %47
%50 = phi i32 [ %49, %47 ], [ %.pre55, %.thread61 ]
%51 = phi i32 [ %48, %47 ], [ %27, %.thread61 ]
%50 = phi i32 [ %49, %47 ], [ %20, %.thread57 ]
%51 = phi i32 [ %48, %47 ], [ %28, %.thread57 ]
%.val = load i32, ptr %2, align 8, !tbaa !121
%.not51 = icmp eq i32 %.val, 0
br i1 %.not51, label %.thread47, label %52
Expand Down
19 changes: 7 additions & 12 deletions bench/abc/optimized/llb2Flow.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1331,7 +1331,7 @@ define i32 @Llb_ManCutLiNum(ptr noundef readonly captures(none) %0, ptr noundef
.preheader: ; preds = %9
%14 = trunc i64 %.val28 to i32
%15 = lshr i32 %14, 6
%.not48 = icmp ult i32 %14, 64
%.not48 = icmp eq i32 %15, 0
br i1 %.not48, label %.critedge2, label %.lr.ph

.lr.ph: ; preds = %.preheader
Expand All @@ -1341,13 +1341,12 @@ define i32 @Llb_ManCutLiNum(ptr noundef readonly captures(none) %0, ptr noundef
br i1 %.not.i, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us: ; preds = %.lr.ph
%umax53 = tail call i32 @llvm.umax.i32(i32 %15, i32 1)
%.val30.us.sink = load ptr, ptr %6, align 8, !tbaa !62
br label %.lr.ph.split.us.split

.lr.ph.split.us.split: ; preds = %.lr.ph.split.us, %Aig_ManObj.exit.us
%.238.us = phi i32 [ %28, %Aig_ManObj.exit.us ], [ %.02144, %.lr.ph.split.us ]
%.02337.us = phi i32 [ %29, %Aig_ManObj.exit.us ], [ 0, %.lr.ph.split.us ]
%.238.us = phi i32 [ %28, %Aig_ManObj.exit.us ], [ %.02144, %.lr.ph.split.us.split.preheader ]
%.02337.us = phi i32 [ %29, %Aig_ManObj.exit.us ], [ 0, %.lr.ph.split.us.split.preheader ]
%.not25.us = icmp eq i32 %.02337.us, 0
br i1 %.not25.us, label %23, label %17

Expand All @@ -1370,13 +1369,12 @@ Aig_ManObj.exit.us: ; preds = %23, %17
%27 = getelementptr inbounds i32, ptr %.val30.us.sink, i64 %26
%28 = load i32, ptr %27, align 4, !tbaa !43
%29 = add nuw nsw i32 %.02337.us, 1
%exitcond54.not = icmp eq i32 %29, %umax53
%exitcond54.not = icmp eq i32 %29, %15
br i1 %exitcond54.not, label %.critedge2, label %.lr.ph.split.us.split, !llvm.loop !63

.lr.ph.split: ; preds = %.lr.ph
%30 = getelementptr i8, ptr %.val31, i64 8
%.val.i = load ptr, ptr %30, align 8, !tbaa !9
%umax = tail call i32 @llvm.umax.i32(i32 %15, i32 1)
%.val30.sink = load ptr, ptr %6, align 8, !tbaa !62
br label %31

Expand Down Expand Up @@ -1426,7 +1424,7 @@ Saig_ObjIsLi.exit: ; preds = %Aig_ManObj.exit

Saig_ObjIsLi.exit.thread: ; preds = %Aig_ManObj.exit, %Saig_ObjIsLi.exit
%51 = add nuw nsw i32 %.02337, 1
%exitcond.not = icmp eq i32 %51, %umax
%exitcond.not = icmp eq i32 %51, %15
br i1 %exitcond.not, label %.critedge2, label %31, !llvm.loop !63

.critedge2: ; preds = %Saig_ObjIsLi.exit.thread, %Aig_ManObj.exit.us, %.preheader, %.split, %9
Expand Down Expand Up @@ -2259,11 +2257,11 @@ define range(i32 0, 2) i32 @Llb_ManFlowBwdPath2_rec(ptr noundef %0, ptr noundef

36: ; preds = %5
%37 = trunc i64 %8 to i32
%.not21.i = icmp ult i32 %37, 64
%38 = lshr i32 %37, 6
%.not21.i = icmp eq i32 %38, 0
br i1 %.not21.i, label %Llb_ObjGetFanoutPath.exit.thread, label %.lr.ph.i

.lr.ph.i: ; preds = %36
%38 = lshr i32 %37, 6
%39 = getelementptr i8, ptr %0, i64 176
%40 = getelementptr inbounds nuw i8, ptr %1, i64 36
%41 = getelementptr i8, ptr %0, i64 32
Expand Down Expand Up @@ -5079,9 +5077,6 @@ declare i32 @llvm.smin.i32(i32, i32) #17
; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #18

; Function Attrs: nocallback nocreateundeforpoison nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #17

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #2 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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
17 changes: 7 additions & 10 deletions bench/abc/optimized/superGate.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5101,13 +5101,10 @@ Vec_StrPush.exit.i46: ; preds = %114, %Vec_StrGrow.e
%122 = load ptr, ptr %121, align 8, !tbaa !42
%123 = getelementptr inbounds nuw i8, ptr %122, i64 8
%124 = load i32, ptr %123, align 8
%125 = lshr i32 %124, 8
call void @llvm.lifetime.start.p0(ptr nonnull %5)
%125 = icmp ult i32 %124, 256
br i1 %125, label %127, label %.preheader24.i.preheader

.preheader24.i.preheader: ; preds = %Vec_StrPush.exit.i46
%126 = lshr i32 %124, 8
br label %.preheader24.i
%125 = icmp eq i32 %125, 0
br i1 %125, label %127, label %.preheader24.i

127: ; preds = %Vec_StrPush.exit.i46
%128 = load i32, ptr %92, align 4, !tbaa !10
Expand Down Expand Up @@ -5173,10 +5170,10 @@ Vec_StrPush.exit.i58: ; preds = %148, %Vec_StrGrow.e
store i8 48, ptr %154, align 1, !tbaa !103
br label %Vec_StrPrintNum.exit

.preheader24.i: ; preds = %.preheader24.i.preheader, %.preheader24.i
%indvars.iv29.i = phi i64 [ %indvars.iv.next30.i, %.preheader24.i ], [ 1, %.preheader24.i.preheader ]
%indvars.iv.i53 = phi i64 [ %indvars.iv.next.i54, %.preheader24.i ], [ 0, %.preheader24.i.preheader ]
%.11525.i = phi i32 [ %158, %.preheader24.i ], [ %126, %.preheader24.i.preheader ]
.preheader24.i: ; preds = %Vec_StrPush.exit.i46, %.preheader24.i
%indvars.iv29.i = phi i64 [ %indvars.iv.next30.i, %.preheader24.i ], [ 1, %Vec_StrPush.exit.i46 ]
%indvars.iv.i53 = phi i64 [ %indvars.iv.next.i54, %.preheader24.i ], [ 0, %Vec_StrPush.exit.i46 ]
%.11525.i = phi i32 [ %158, %.preheader24.i ], [ %125, %Vec_StrPush.exit.i46 ]
%155 = urem i32 %.11525.i, 10
%156 = trunc nuw nsw i32 %155 to i8
%157 = getelementptr inbounds nuw i8, ptr %5, i64 %indvars.iv.i53
Expand Down
18 changes: 10 additions & 8 deletions bench/abseil-cpp/optimized/decode_rust_punycode.ll
Original file line number Diff line number Diff line change
Expand Up @@ -227,16 +227,16 @@ _ZN4absl18debugging_internal12_GLOBAL__N_113ScanNextDeltaERPKcS3_jRj.exit: ; pre
%108 = and i64 %105, 3074457345618258602
%109 = call range(i64 0, 32) i64 @llvm.ctpop.i64(i64 %108)
%110 = trunc nuw nsw i64 %109 to i32
%.not42.i = icmp ult i32 %88, 32
br i1 %.not42.i, label %.preheader.i, label %.lr.ph.i53
%.not42.i = icmp eq i32 %97, 0
br i1 %.not42.i, label %.lr.ph48.preheader.i, label %.lr.ph.i53

.preheader.i: ; preds = %.lr.ph.i53, %96
%.041.lcssa.i = phi i32 [ %107, %96 ], [ %116, %.lr.ph.i53 ]
%.040.lcssa.i = phi i32 [ %110, %96 ], [ %120, %.lr.ph.i53 ]
.preheader.i: ; preds = %.lr.ph.i53
%.not49.i = icmp eq i32 %97, 7
br i1 %.not49.i, label %_ZN4absl18debugging_internal25BoundedUtf8LengthSequenceILj256EE32InsertAndReturnSumOfPredecessorsEjj.exit, label %.lr.ph48.preheader.i

.lr.ph48.preheader.i: ; preds = %.preheader.i
.lr.ph48.preheader.i: ; preds = %.preheader.i, %96
%.040.lcssa61.i = phi i32 [ %120, %.preheader.i ], [ %110, %96 ]
%.041.lcssa59.i = phi i32 [ %116, %.preheader.i ], [ %107, %96 ]
%.pre.i = load i64, ptr %.phi.trans.insert.i, align 8, !tbaa !16
br label %.lr.ph48.i

Expand Down Expand Up @@ -276,10 +276,12 @@ _ZN4absl18debugging_internal12_GLOBAL__N_113ScanNextDeltaERPKcS3_jRj.exit: ; pre
br i1 %127, label %.lr.ph48.i, label %._crit_edge.loopexit.i, !llvm.loop !24

_ZN4absl18debugging_internal25BoundedUtf8LengthSequenceILj256EE32InsertAndReturnSumOfPredecessorsEjj.exit: ; preds = %.preheader.i, %._crit_edge.loopexit.i
%.040.lcssa62.i = phi i32 [ %.040.lcssa61.i, %._crit_edge.loopexit.i ], [ %120, %.preheader.i ]
%.041.lcssa60.i = phi i32 [ %.041.lcssa59.i, %._crit_edge.loopexit.i ], [ %116, %.preheader.i ]
%.pre-phi.i = phi i64 [ %.pre55.i, %._crit_edge.loopexit.i ], [ %105, %.preheader.i ]
%128 = phi i64 [ %.pre54.i, %._crit_edge.loopexit.i ], [ %104, %.preheader.i ]
%129 = add nuw i32 %.041.lcssa.i, %spec.store.select.i
%130 = add nuw i32 %129, %.040.lcssa.i
%129 = add nuw i32 %.040.lcssa62.i, %spec.store.select.i
%130 = add nuw i32 %129, %.041.lcssa60.i
%131 = icmp ugt i32 %90, 4
%132 = add nsw i32 %90, -1
%133 = select i1 %131, i32 0, i32 %132
Expand Down
11 changes: 4 additions & 7 deletions bench/abseil-cpp/optimized/status.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1442,15 +1442,12 @@ define linkonce_odr dso_local void @_ZN4absl23inlined_vector_internal7StorageINS
%4 = getelementptr inbounds nuw i8, ptr %0, i64 8
%5 = load ptr, ptr %4, align 8
%6 = select i1 %.not, ptr %4, ptr %5
%.not5.i = icmp ult i64 %2, 2
br i1 %.not5.i, label %_ZN4absl23inlined_vector_internal14DestroyAdapterISaINS_15status_internal7PayloadEELb0EE15DestroyElementsERS4_PS3_m.exit, label %.lr.ph.i.preheader

.lr.ph.i.preheader: ; preds = %1
%7 = lshr i64 %2, 1
br label %.lr.ph.i
%.not5.i = icmp eq i64 %7, 0
br i1 %.not5.i, label %_ZN4absl23inlined_vector_internal14DestroyAdapterISaINS_15status_internal7PayloadEELb0EE15DestroyElementsERS4_PS3_m.exit, label %.lr.ph.i

.lr.ph.i: ; preds = %.lr.ph.i.preheader, %_ZNSt16allocator_traitsISaIN4absl15status_internal7PayloadEEE7destroyIS2_EEvRS3_PT_.exit.i
%.06.i = phi i64 [ %8, %_ZNSt16allocator_traitsISaIN4absl15status_internal7PayloadEEE7destroyIS2_EEvRS3_PT_.exit.i ], [ %7, %.lr.ph.i.preheader ]
.lr.ph.i: ; preds = %1, %_ZNSt16allocator_traitsISaIN4absl15status_internal7PayloadEEE7destroyIS2_EEvRS3_PT_.exit.i
%.06.i = phi i64 [ %8, %_ZNSt16allocator_traitsISaIN4absl15status_internal7PayloadEEE7destroyIS2_EEvRS3_PT_.exit.i ], [ %7, %1 ]
%8 = add nsw i64 %.06.i, -1
%9 = getelementptr inbounds nuw %"struct.absl::status_internal::Payload", ptr %6, i64 %8
%10 = getelementptr inbounds nuw i8, ptr %9, i64 32
Expand Down
Loading