Skip to content
This repository was archived by the owner on Mar 17, 2026. It is now read-only.
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
3 changes: 1 addition & 2 deletions bench/abc/optimized/darLib.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1243,8 +1243,7 @@ Dar_LibAlloc.exit: ; preds = %.lr.ph, %Dar_LibAll
%78 = or disjoint i64 %76, %77
store i64 %78, ptr %51, align 4
%79 = load i64, ptr %45, align 4
%sext = sub nsw i32 0, %42
%80 = sext i32 %sext to i64
%sext = sub nsw i64 0, %56
%81 = xor i64 %79, %80
%.not25.i = icmp eq i32 %43, 0
%82 = load i64, ptr %47, align 4
Expand Down
9 changes: 5 additions & 4 deletions bench/abc/optimized/giaLf.ll
Original file line number Diff line number Diff line change
Expand Up @@ -5441,9 +5441,10 @@ Abc_TtExpand.exit113: ; preds = %381, %Abc_TtExpand.

Abc_TtMux.exit: ; preds = %.lr.ph.i116
%396 = load i64, ptr %10, align 16, !tbaa !117
%397 = and i64 %396, 1
%.not.not = icmp eq i64 %397, 0
br i1 %.not.not, label %Abc_TtNot.exit, label %.lr.ph.i122
%.not = trunc i64 %396 to i1
%397 = trunc i64 %396 to i32
%.mux = and i32 %397, 1
br i1 %.not, label %.lr.ph.i122, label %Abc_TtNot.exit

.lr.ph.i122: ; preds = %Abc_TtMux.exit, %.lr.ph.i122
%indvars.iv.i123 = phi i64 [ %indvars.iv.next.i124, %.lr.ph.i122 ], [ 0, %Abc_TtMux.exit ]
Expand All @@ -5456,7 +5457,7 @@ Abc_TtMux.exit: ; preds = %.lr.ph.i116
br i1 %exitcond.not.i125, label %Abc_TtNot.exit, label %.lr.ph.i122, !llvm.loop !139

Abc_TtNot.exit: ; preds = %.lr.ph.i122, %Abc_TtExpand.exit113, %Abc_TtMux.exit
%401 = phi i32 [ 0, %Abc_TtExpand.exit113 ], [ 0, %Abc_TtMux.exit ], [ 1, %.lr.ph.i122 ]
%401 = phi i32 [ 0, %Abc_TtExpand.exit113 ], [ %.mux, %Abc_TtMux.exit ], [ 1, %.lr.ph.i122 ]
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Perhaps we can infer the constant in computeKnownBitsFromCond.

%402 = call fastcc i32 @Abc_TtMinBase(ptr noundef %10, ptr noundef nonnull %315, i32 noundef %252, i32 noundef %16)
%403 = load i32, ptr %250, align 4
%404 = shl i32 %402, 24
Expand Down
11 changes: 6 additions & 5 deletions bench/abc/optimized/giaMf.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4919,7 +4919,7 @@ Mf_SetLastCutIsContained.exit.us.us.us: ; preds = %Mf_SetCutIsContaine
br label %.lr.ph.i.i283.us.us.us

.lr.ph.i.i283.us.us.us: ; preds = %.lr.ph.i.i283.us.us.us, %.lr.ph.preheader.i.i281.us.us.us
%indvars.iv.i.i284.us.us.us = phi i64 [ 0, %.lr.ph.preheader.i.i281.us.us.us ], [ %indvars.iv.next.i.i285.us.us.us, %.lr.ph.i.i283.us.us.us ]
%indvars.iv.i.i284.us.us.us = phi i64 [ 0, %.lr.ph.preheader.i.i280.us.us.us ], [ %indvars.iv.next.i.i285.us.us.us, %.lr.ph.i.i282.us.us.us ]
%537 = getelementptr inbounds nuw i64, ptr %515, i64 %indvars.iv.i.i284.us.us.us
%538 = load i64, ptr %537, align 8, !tbaa !3
%539 = xor i64 %538, -1
Expand Down Expand Up @@ -5588,9 +5588,10 @@ Abc_TtExpand.exit122.i.us.us.us: ; preds = %839, %Abc_TtExpand.

Abc_TtMux.exit.i.us.us.us: ; preds = %.lr.ph.i125.i.us.us.us
%854 = load i64, ptr %14, align 16, !tbaa !3
%855 = and i64 %854, 1
%.not.not.i.us.us.us = icmp eq i64 %855, 0
br i1 %.not.not.i.us.us.us, label %Abc_TtNot.exit.i.us.us.us, label %.lr.ph.i131.i.us.us.us
%.not.i286.us.us.us = trunc i64 %854 to i1
%855 = trunc i64 %854 to i32
%.mux.i.us.us.us = and i32 %855, 1
br i1 %.not.i286.us.us.us, label %.lr.ph.i131.i.us.us.us, label %Abc_TtNot.exit.i.us.us.us

.lr.ph.i131.i.us.us.us: ; preds = %Abc_TtMux.exit.i.us.us.us, %.lr.ph.i131.i.us.us.us
%indvars.iv.i132.i.us.us.us = phi i64 [ %indvars.iv.next.i133.i.us.us.us, %.lr.ph.i131.i.us.us.us ], [ 0, %Abc_TtMux.exit.i.us.us.us ]
Expand All @@ -5603,7 +5604,7 @@ Abc_TtMux.exit.i.us.us.us: ; preds = %.lr.ph.i125.i.us.us
br i1 %exitcond.not.i134.i.us.us.us, label %Abc_TtNot.exit.i.us.us.us, label %.lr.ph.i131.i.us.us.us, !llvm.loop !170

Abc_TtNot.exit.i.us.us.us: ; preds = %.lr.ph.i131.i.us.us.us, %Abc_TtMux.exit.i.us.us.us
%859 = phi i32 [ 0, %Abc_TtMux.exit.i.us.us.us ], [ 1, %.lr.ph.i131.i.us.us.us ]
%859 = phi i32 [ %.mux.i.us.us.us, %Abc_TtMux.exit.i.us.us.us ], [ 1, %.lr.ph.i131.i.us.us.us ]
%.not.i522.us.us.us = icmp eq i32 %495, 0
br i1 %.not.i522.us.us.us, label %Abc_TtMinBase.exit.us.us.us, label %.lr.ph.split.i524.us.us.us

Expand Down
19 changes: 9 additions & 10 deletions bench/abc/optimized/giaOf.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6947,16 +6947,15 @@ Of_ObjUpdateRequired.exit: ; preds = %100, %107
%118 = getelementptr inbounds nuw i32, ptr %74, i64 %117
%119 = load i32, ptr %118, align 4, !tbaa !39
%120 = and i32 %115, 31
%121 = shl nuw i32 1, %120
%122 = and i32 %119, %121
%.not138 = icmp eq i32 %122, 0
%.val91 = load ptr, ptr %81, align 8, !tbaa !56
%.sink.in.idx = select i1 %.not138, i64 0, i64 4
%121 = lshr i32 %119, %120
%122 = trunc i32 %121 to i1
%.val101 = load ptr, ptr %81, align 8, !tbaa !56
%.sink.in.idx = select i1 %122, i64 4, i64 0
%.sink.in = getelementptr inbounds nuw i8, ptr %91, i64 %.sink.in.idx
%.sink = load i32, ptr %.sink.in, align 4, !tbaa !39
%123 = ashr i32 %.sink, 16
%124 = sext i32 %123 to i64
%125 = getelementptr inbounds ptr, ptr %.val91, i64 %124
%125 = getelementptr inbounds ptr, ptr %.val101, i64 %124
%126 = load ptr, ptr %125, align 8, !tbaa !73
%127 = and i32 %.sink, 65535
%128 = zext nneg i32 %127 to i64
Expand All @@ -6966,7 +6965,7 @@ Of_ObjUpdateRequired.exit: ; preds = %100, %107
%131 = load i32, ptr %130, align 4, !tbaa !39
%132 = ashr i32 %131, 16
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds ptr, ptr %.val91, i64 %133
%134 = getelementptr inbounds ptr, ptr %.val101, i64 %133
%135 = load ptr, ptr %134, align 8, !tbaa !73
%136 = and i32 %131, 65535
%137 = zext nneg i32 %136 to i64
Expand All @@ -6988,7 +6987,7 @@ Of_ObjUpdateRequired.exit: ; preds = %100, %107
%147 = load i32, ptr %145, align 4, !tbaa !39
%148 = ashr i32 %147, 1
%.not82121 = icmp eq i32 %148, 0
br i1 %.not138, label %.lr.ph.split, label %.lr.ph.split.us
br i1 %122, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us: ; preds = %.lr.ph
br i1 %.not82121, label %.critedge2, label %.lr.ph129
Expand Down Expand Up @@ -7085,8 +7084,8 @@ Of_ObjUpdateRequired.exit108: ; preds = %.lr.ph124, %183
%198 = icmp samesign ult i64 %indvars.iv.next146, %197
br i1 %198, label %168, label %.critedge2, !llvm.loop !172

.critedge2: ; preds = %Of_ObjUpdateRequired.exit108.us, %150, %195, %168, %.lr.ph.split.us, %.lr.ph.split, %114
%.lcssa = phi i32 [ 0, %114 ], [ %146, %.lr.ph.split ], [ %146, %.lr.ph.split.us ], [ %196, %195 ], [ %196, %168 ], [ %165, %150 ], [ %165, %Of_ObjUpdateRequired.exit108.us ]
.critedge2: ; preds = %195, %168, %Of_ObjUpdateRequired.exit108.us, %150, %.lr.ph.split.us, %.lr.ph.split, %114
%.lcssa = phi i32 [ 0, %114 ], [ %146, %.lr.ph.split ], [ %146, %.lr.ph.split.us ], [ %165, %Of_ObjUpdateRequired.exit108.us ], [ %165, %150 ], [ %196, %168 ], [ %196, %195 ]
%199 = zext nneg i32 %.lcssa to i64
%200 = add i64 %85, %199
store i64 %200, ptr %76, align 8, !tbaa !122
Expand Down
5 changes: 2 additions & 3 deletions bench/abseil-cpp/optimized/flag.ll
Original file line number Diff line number Diff line change
Expand Up @@ -234,9 +234,8 @@ define dso_local void @_ZN4absl14flags_internal13MaskedPointer9ApplyMaskEm(ptr n
define dso_local noundef zeroext i1 @_ZNK4absl14flags_internal13MaskedPointer26IsUnprotectedReadCandidateEv(ptr noundef nonnull readonly align 8 captures(none) dereferenceable(8) %0) local_unnamed_addr #3 align 2 {
%2 = load ptr, ptr %0, align 8, !tbaa !18
%3 = ptrtoint ptr %2 to i64
%4 = and i64 %3, 1
%5 = icmp ne i64 %4, 0
ret i1 %5
%4 = trunc i64 %3 to i1
ret i1 %4
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable
Expand Down
10 changes: 4 additions & 6 deletions bench/actix-rs/optimized/14bh10sj718x2c7a.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6259,11 +6259,9 @@ define void @"_ZN92_$LT$actix_web..http..header..range..ByteRangeSpec$u20$as$u20
%.sroa.821.16.copyload = load i64, ptr %.sroa.821.16..sroa_idx, align 8
call void @llvm.lifetime.end.p0(ptr nonnull %6)
call void @llvm.lifetime.end.p0(ptr nonnull %7)
%29 = and i8 %.sroa.015.0.copyload, 1
%30 = icmp ne i8 %29, 0
%31 = and i8 %.sroa.619.16.copyload, 1
%32 = icmp ne i8 %31, 0
%or.cond.not135 = select i1 %30, i1 true, i1 %32
%29 = trunc i8 %.sroa.015.0.copyload to i1
%30 = trunc i8 %.sroa.619.16.copyload to i1
%or.cond.not135 = select i1 %29, i1 true, i1 %30
%.not56 = icmp ugt i64 %.sroa.417.0.copyload, %.sroa.821.16.copyload
%or.cond58 = select i1 %or.cond.not135, i1 true, i1 %.not56
br i1 %or.cond58, label %37, label %38
Expand Down Expand Up @@ -6291,7 +6289,7 @@ define void @"_ZN92_$LT$actix_web..http..header..range..ByteRangeSpec$u20$as$u20
br label %"_ZN4core6result19Result$LT$T$C$E$GT$3map17ha683d5f7c4c7b50fE.exit"

"_ZN4core6result19Result$LT$T$C$E$GT$3map17ha683d5f7c4c7b50fE.exit": ; preds = %34, %36
%.sink.i76 = phi i64 [ 1, %34 ], [ 3, %36 ]
%.sink.i76 = phi i64 [ 1, %32 ], [ 3, %34 ]
store i64 %.sink.i76, ptr %0, align 8, !alias.scope !1033, !noalias !1036
br label %39

Expand Down
66 changes: 31 additions & 35 deletions bench/arrow/optimized/bit_run_reader.ll
Original file line number Diff line number Diff line change
Expand Up @@ -30,62 +30,58 @@ define void @_ZN5arrow8internal12BitRunReaderC2EPKhll(ptr noundef nonnull align
%15 = lshr i64 %2, 3
%16 = getelementptr inbounds nuw i8, ptr %1, i64 %15
%17 = load i8, ptr %16, align 1, !tbaa !15
%18 = zext i8 %17 to i16
%19 = trunc i64 %2 to i16
%20 = and i16 %19, 7
%18 = trunc i64 %2 to i8
%19 = and i8 %18, 7
%20 = lshr i8 %17, %19
%21 = getelementptr inbounds nuw i8, ptr %0, i64 32
%22 = xor i16 %18, -1
%23 = lshr i16 %22, %20
%24 = trunc i16 %23 to i8
%25 = and i8 %24, 1
store i8 %25, ptr %21, align 8, !tbaa !16
%26 = getelementptr inbounds nuw i8, ptr %0, i64 24
store i64 0, ptr %26, align 8, !tbaa !14
%27 = icmp sgt i64 %10, 63
br i1 %27, label %_ZN5arrow8internal12BitRunReader8LoadWordEl.exit, label %28, !prof !17
%22 = and i8 %20, 1
%23 = xor i8 %22, 1
store i8 %23, ptr %21, align 8, !tbaa !16
%24 = getelementptr inbounds nuw i8, ptr %0, i64 24
store i64 0, ptr %24, align 8, !tbaa !14
%25 = icmp sgt i64 %10, 63
br i1 %25, label %_ZN5arrow8internal12BitRunReader8LoadWordEl.exit, label %28, !prof !17

28: ; preds = %14
%29 = ashr i64 %10, 3
%30 = and i64 %10, 7
%31 = icmp ne i64 %30, 0
%32 = zext i1 %31 to i64
%33 = add nsw i64 %29, %32
tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %26, ptr nonnull align 1 %6, i64 %33, i1 false)
tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %24, ptr nonnull align 1 %6, i64 %33, i1 false)
%34 = add nsw i64 %10, -1
%35 = lshr i64 %34, 3
%36 = getelementptr inbounds nuw i8, ptr %26, i64 %35
%36 = getelementptr inbounds nuw i8, ptr %24, i64 %35
%37 = load i8, ptr %36, align 1, !tbaa !15
%38 = zext i8 %37 to i32
%39 = trunc i64 %34 to i32
%40 = and i32 %39, 7
%41 = shl nuw nsw i32 1, %40
%42 = and i32 %41, %38
%.not.i = icmp eq i32 %42, 0
%.neg.i.i = sext i1 %.not.i to i8
%43 = sdiv i64 %10, 8
%44 = getelementptr inbounds i8, ptr %26, i64 %43
%45 = load i8, ptr %44, align 1, !tbaa !15
%46 = xor i8 %45, %.neg.i.i
%47 = srem i64 %10, 8
%48 = getelementptr inbounds i8, ptr @_ZN5arrow8bit_utilL8kBitmaskE, i64 %47
%49 = load i8, ptr %48, align 1, !tbaa !15
%50 = and i8 %46, %49
%51 = xor i8 %50, %45
store i8 %51, ptr %44, align 1, !tbaa !15
%36 = trunc i64 %32 to i8
%37 = and i8 %36, 7
%38 = lshr i8 %35, %37
%39 = or i8 %38, -2
%.neg.i = add nsw i8 %39, 1
%40 = sdiv i64 %10, 8
%41 = getelementptr inbounds i8, ptr %24, i64 %40
%42 = load i8, ptr %41, align 1, !tbaa !15
%43 = xor i8 %.neg.i, %42
%44 = srem i64 %10, 8
%45 = getelementptr inbounds i8, ptr @_ZN5arrow8bit_utilL8kBitmaskE, i64 %44
%46 = load i8, ptr %45, align 1, !tbaa !15
%47 = and i8 %43, %46
%48 = xor i8 %47, %42
store i8 %48, ptr %41, align 1, !tbaa !15
%.pre = load i8, ptr %21, align 8, !tbaa !16, !range !18
br label %_ZN5arrow8internal12BitRunReader8LoadWordEl.exit

_ZN5arrow8internal12BitRunReader8LoadWordEl.exit: ; preds = %14, %28
%.pre9.in = phi ptr [ %26, %28 ], [ %6, %14 ]
%52 = phi i8 [ %.pre, %28 ], [ %25, %14 ]
%.pre9.in = phi ptr [ %24, %26 ], [ %6, %14 ]
%52 = phi i8 [ %.pre, %26 ], [ %23, %14 ]
%.pre9 = load i64, ptr %.pre9.in, align 1
%53 = zext nneg i8 %52 to i64
%53 = zext i8 %52 to i64
%54 = sub nsw i64 0, %53
%spec.select = xor i64 %.pre9, %54
%55 = load i64, ptr %7, align 8, !tbaa !11
%notmask.i = shl nsw i64 -1, %55
%56 = and i64 %notmask.i, %spec.select
store i64 %56, ptr %26, align 8, !tbaa !14
store i64 %56, ptr %24, align 8, !tbaa !14
br label %57

57: ; preds = %_ZN5arrow8internal12BitRunReader8LoadWordEl.exit, %12
Expand Down
32 changes: 15 additions & 17 deletions bench/arrow/optimized/bitmap.ll
Original file line number Diff line number Diff line change
Expand Up @@ -346,29 +346,27 @@ define void @_ZNK5arrow8internal6Bitmap8ToStringB5cxx11Ev(ptr dead_on_unwind noa
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit

_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit: ; preds = %.lr.ph, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit
%.011 = phi i64 [ 0, %.lr.ph ], [ %28, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit ]
%.011 = phi i64 [ 0, %.lr.ph ], [ %27, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit ]
%12 = load ptr, ptr %1, align 8, !tbaa !38
%13 = load i64, ptr %11, align 8, !tbaa !39
%14 = add nsw i64 %13, %.011
%15 = lshr i64 %14, 3
%16 = getelementptr inbounds nuw i8, ptr %12, i64 %15
%17 = load i8, ptr %16, align 1, !tbaa !40
%18 = zext i8 %17 to i32
%19 = trunc i64 %14 to i32
%20 = and i32 %19, 7
%21 = shl nuw nsw i32 1, %20
%22 = and i32 %21, %18
%.not = icmp eq i32 %22, 0
%23 = select i1 %.not, i8 48, i8 49
%24 = lshr i64 %.011, 3
%25 = load ptr, ptr %0, align 8, !tbaa !41
%26 = getelementptr inbounds nuw i8, ptr %25, i64 %.011
%27 = getelementptr inbounds nuw i8, ptr %26, i64 %24
store i8 %23, ptr %27, align 1, !tbaa !40
%28 = add nuw nsw i64 %.011, 1
%29 = load i64, ptr %3, align 8, !tbaa !32
%30 = icmp slt i64 %28, %29
br i1 %30, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit._crit_edge, !llvm.loop !43
%18 = trunc i64 %14 to i8
%19 = and i8 %18, 7
%20 = lshr i8 %17, %19
%21 = and i8 %20, 1
%22 = or disjoint i8 %21, 48
%23 = lshr i64 %.011, 3
%24 = load ptr, ptr %0, align 8, !tbaa !41
%25 = getelementptr inbounds nuw i8, ptr %24, i64 %.011
%26 = getelementptr inbounds nuw i8, ptr %25, i64 %23
store i8 %22, ptr %26, align 1, !tbaa !40
%27 = add nuw nsw i64 %.011, 1
%28 = load i64, ptr %3, align 8, !tbaa !32
%29 = icmp slt i64 %27, %28
br i1 %29, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit._crit_edge, !llvm.loop !43

_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit._crit_edge: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_.exit, %2
ret void
Expand Down
15 changes: 6 additions & 9 deletions bench/arrow/optimized/page.ll
Original file line number Diff line number Diff line change
Expand Up @@ -747,9 +747,8 @@ declare zeroext i1 @_mi_free_delayed_block(ptr noundef) local_unnamed_addr #2
define hidden void @_mi_page_unfull(ptr noundef %0) local_unnamed_addr #4 {
%2 = getelementptr i8, ptr %0, i64 14
%.val = load i8, ptr %2, align 2
%3 = and i8 %.val, 1
%.not = icmp eq i8 %3, 0
br i1 %.not, label %36, label %4
%3 = trunc i8 %.val to i1
br i1 %3, label %4, label %36

4: ; preds = %1
%5 = getelementptr inbounds nuw i8, ptr %0, i64 48
Expand Down Expand Up @@ -1311,9 +1310,8 @@ define hidden void @_mi_page_retire(ptr noundef %0) local_unnamed_addr #1 {
%3 = load i8, ptr %2, align 2
%4 = and i8 %3, -3
store i8 %4, ptr %2, align 2
%5 = and i8 %3, 1
%.not.i = icmp eq i8 %5, 0
br i1 %.not.i, label %6, label %mi_page_queue_of.exit.thread
%5 = trunc i8 %3 to i1
br i1 %5, label %mi_page_queue_of.exit.thread, label %6

6: ; preds = %1
%7 = getelementptr inbounds nuw i8, ptr %0, i64 28
Expand Down Expand Up @@ -2031,9 +2029,8 @@ mi_page_extend_free.exit.i.i: ; preds = %158, %150
162: ; preds = %123
%163 = getelementptr i8, ptr %.02650.i.i, i64 14
%.val.i.i.i = load i8, ptr %163, align 2
%164 = and i8 %.val.i.i.i, 1
%.not.i28.i.i = icmp eq i8 %164, 0
br i1 %.not.i28.i.i, label %165, label %mi_page_to_full.exit.i.i
%164 = trunc i8 %.val.i.i.i to i1
br i1 %164, label %mi_page_to_full.exit.i.i, label %165

165: ; preds = %162
%166 = getelementptr inbounds nuw i8, ptr %.02650.i.i, i64 48
Expand Down
18 changes: 8 additions & 10 deletions bench/assimp/optimized/X3DImporter.ll
Original file line number Diff line number Diff line change
Expand Up @@ -14270,11 +14270,10 @@ define linkonce_odr hidden noundef i32 @_ZN4pugi4impl23load_stream_data_noseekIc
%24 = getelementptr inbounds i8, ptr %0, i64 %23
%25 = getelementptr inbounds nuw i8, ptr %24, i64 32
%26 = load i32, ptr %25, align 8
%27 = and i32 %26, 1
%.not66 = icmp ne i32 %27, 0
%27 = trunc i32 %26 to i1
%28 = and i32 %26, 6
%or.cond = icmp eq i32 %28, 4
%or.cond68 = or i1 %.not66, %or.cond
%or.cond68 = or i1 %or.cond, %27
br i1 %or.cond68, label %.thread, label %29

29: ; preds = %18
Expand Down Expand Up @@ -14326,11 +14325,11 @@ define linkonce_odr hidden noundef i32 @_ZN4pugi4impl23load_stream_data_noseekIc
br i1 %.not.i53, label %_ZN4pugi4impl12auto_deleterINS0_16xml_stream_chunkIcEEED2Ev.exit, label %.lr.ph.i

.lr.ph.i: ; preds = %.thread, %.noexc90
%.05.i = phi ptr [ %42, %.noexc90 ], [ %.sroa.0.5, %.thread ]
%.05.i = phi ptr [ %42, %.noexc89 ], [ %.sroa.0.5, %.thread ]
%42 = load ptr, ptr %.05.i, align 8
%43 = load ptr, ptr @_ZN4pugi4impl38xml_memory_management_function_storageIiE10deallocateE, align 8
invoke void %43(ptr noundef nonnull %.05.i)
to label %.noexc90 unwind label %44
to label %.noexc89 unwind label %44

.noexc90: ; preds = %.lr.ph.i
%.not.i89 = icmp eq ptr %42, null
Expand All @@ -14353,11 +14352,11 @@ _ZN4pugi4impl12auto_deleterINS0_16xml_stream_chunkIcEEED2Ev.exit: ; preds = %.no
br i1 %.not.i54, label %_ZN4pugi4impl12auto_deleterINS0_16xml_stream_chunkIcEEED2Ev.exit55, label %.lr.ph.i92

.lr.ph.i92: ; preds = %47, %.noexc95
%.05.i93 = phi ptr [ %48, %.noexc95 ], [ %.sroa.0.3, %47 ]
%.05.i93 = phi ptr [ %48, %.noexc94 ], [ %.sroa.0.3, %47 ]
%48 = load ptr, ptr %.05.i93, align 8
%49 = load ptr, ptr @_ZN4pugi4impl38xml_memory_management_function_storageIiE10deallocateE, align 8
invoke void %49(ptr noundef nonnull %.05.i93)
to label %.noexc95 unwind label %50
to label %.noexc94 unwind label %50

.noexc95: ; preds = %.lr.ph.i92
%.not.i94 = icmp eq ptr %48, null
Expand Down Expand Up @@ -14419,11 +14418,10 @@ define linkonce_odr hidden noundef i32 @_ZN4pugi4impl21load_stream_data_seekIcEE
%34 = getelementptr inbounds i8, ptr %0, i64 %33
%35 = getelementptr inbounds nuw i8, ptr %34, i64 32
%36 = load i32, ptr %35, align 8
%37 = and i32 %36, 1
%.not41 = icmp ne i32 %37, 0
%37 = trunc i32 %36 to i1
%38 = and i32 %36, 6
%or.cond40 = icmp eq i32 %38, 4
%or.cond42 = or i1 %.not41, %or.cond40
%or.cond42 = or i1 %or.cond40, %37
br i1 %or.cond42, label %47, label %44

39: ; preds = %28
Expand Down
Loading