Skip to content

pre-commit: PR146714 #2530

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 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
99 changes: 50 additions & 49 deletions bench/abc/optimized/acecRe.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3015,85 +3015,86 @@ define void @Ree_ManRemoveTrivial(ptr noundef %0, ptr noundef captures(none) %1)
6: ; preds = %2, %5
tail call void @Gia_ManCreateRefs(ptr noundef nonnull %0) #21
%7 = getelementptr i8, ptr %1, i64 4
%.val3339 = load i32, ptr %7, align 4, !tbaa !25
%8 = icmp sgt i32 %.val3339, 0
%.val3342 = load i32, ptr %7, align 4, !tbaa !25
%8 = icmp sgt i32 %.val3342, 0
br i1 %8, label %.lr.ph, label %._crit_edge

.lr.ph: ; preds = %6
%9 = getelementptr i8, ptr %1, i64 8
%10 = getelementptr i8, ptr %0, i64 32
br label %11

11: ; preds = %.lr.ph, %48
%.val3343 = phi i32 [ %.val3339, %.lr.ph ], [ %.val33, %48 ]
%indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %48 ]
%12 = phi i64 [ 0, %.lr.ph ], [ %49, %48 ]
%.041 = phi i32 [ 0, %.lr.ph ], [ %.1, %48 ]
11: ; preds = %.lr.ph, %45
%.val3346 = phi i32 [ %.val3342, %.lr.ph ], [ %.val33, %45 ]
%indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %45 ]
%12 = phi i64 [ 0, %.lr.ph ], [ %46, %45 ]
%.044 = phi i32 [ 0, %.lr.ph ], [ %.1, %45 ]
%.val36 = load ptr, ptr %9, align 8, !tbaa !23
%13 = and i64 %12, 4294967294
%14 = getelementptr inbounds nuw i32, ptr %.val36, i64 %13
%15 = getelementptr inbounds nuw i8, ptr %14, i64 8
%16 = load i32, ptr %15, align 4, !tbaa !16
%17 = icmp eq i32 %16, 0
br i1 %17, label %18, label %43
br i1 %17, label %18, label %40

18: ; preds = %11
%19 = getelementptr inbounds nuw i8, ptr %14, i64 12
%20 = load i32, ptr %19, align 4, !tbaa !16
%.val32 = load ptr, ptr %10, align 8, !tbaa !30
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val32, i64 %21
%.idx39 = mul nsw i64 %21, 12
%22 = getelementptr inbounds i8, ptr %.val32, i64 %.idx39
%23 = getelementptr inbounds nuw i8, ptr %14, i64 16
%24 = load i32, ptr %23, align 4, !tbaa !16
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val32, i64 %25
%27 = load i64, ptr %22, align 4
%28 = and i64 %27, 536870911
%29 = sub nsw i64 0, %28
%30 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %22, i64 %29
%31 = icmp eq ptr %26, %30
br i1 %31, label %38, label %32

32: ; preds = %18
%33 = lshr i64 %27, 32
%34 = and i64 %33, 536870911
%35 = sub nsw i64 0, %34
%36 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %22, i64 %35
%37 = icmp eq ptr %26, %36
br i1 %37, label %38, label %43

38: ; preds = %32, %18
%.idx = mul nsw i64 %25, 12
%26 = load i64, ptr %22, align 4
%27 = and i64 %26, 536870911
%.idx40 = mul nsw i64 %27, -12
%28 = add nsw i64 %.idx40, %.idx39
%29 = icmp eq i64 %.idx, %28
br i1 %29, label %35, label %30

30: ; preds = %18
%31 = lshr i64 %26, 32
%32 = and i64 %31, 536870911
%.idx41 = mul nsw i64 %32, -12
%33 = add nsw i64 %.idx41, %.idx39
%34 = icmp eq i64 %.idx, %33
br i1 %34, label %35, label %40

35: ; preds = %30, %18
%.val38 = load ptr, ptr %3, align 8, !tbaa !86
%39 = shl nsw i64 %25, 2
%40 = getelementptr inbounds i8, ptr %.val38, i64 %39
%41 = load i32, ptr %40, align 4, !tbaa !16
%42 = icmp eq i32 %41, 1
br i1 %42, label %48, label %43

43: ; preds = %32, %38, %11
%44 = add nsw i32 %.041, 1
%45 = mul nsw i32 %.041, 6
%46 = sext i32 %45 to i64
%47 = getelementptr inbounds i32, ptr %.val36, i64 %46
tail call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %47, ptr noundef nonnull align 4 dereferenceable(24) %14, i64 24, i1 false)
%36 = shl nsw i64 %25, 2
%37 = getelementptr inbounds i8, ptr %.val38, i64 %36
%38 = load i32, ptr %37, align 4, !tbaa !16
%39 = icmp eq i32 %38, 1
br i1 %39, label %45, label %40

40: ; preds = %30, %35, %11
%41 = add nsw i32 %.044, 1
%42 = mul nsw i32 %.044, 6
%43 = sext i32 %42 to i64
%44 = getelementptr inbounds i32, ptr %.val36, i64 %43
tail call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %44, ptr noundef nonnull align 4 dereferenceable(24) %14, i64 24, i1 false)
%.val33.pre = load i32, ptr %7, align 4, !tbaa !25
br label %48
br label %45

48: ; preds = %38, %43
%.val33 = phi i32 [ %.val3343, %38 ], [ %.val33.pre, %43 ]
%.1 = phi i32 [ %.041, %38 ], [ %44, %43 ]
45: ; preds = %35, %40
%.val33 = phi i32 [ %.val3346, %35 ], [ %.val33.pre, %40 ]
%.1 = phi i32 [ %.044, %35 ], [ %41, %40 ]
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%49 = mul nuw nsw i64 %indvars.iv.next, 6
%50 = trunc nuw i64 %49 to i32
%51 = icmp sgt i32 %.val33, %50
br i1 %51, label %11, label %._crit_edge.loopexit, !llvm.loop !87
%46 = mul nuw nsw i64 %indvars.iv.next, 6
%47 = trunc nuw i64 %46 to i32
%48 = icmp sgt i32 %.val33, %47
br i1 %48, label %11, label %._crit_edge.loopexit, !llvm.loop !87

._crit_edge.loopexit: ; preds = %48
%52 = mul nsw i32 %.1, 6
._crit_edge.loopexit: ; preds = %45
%49 = mul nsw i32 %.1, 6
br label %._crit_edge

._crit_edge: ; preds = %._crit_edge.loopexit, %6
%.0.lcssa = phi i32 [ 0, %6 ], [ %52, %._crit_edge.loopexit ]
%.0.lcssa = phi i32 [ 0, %6 ], [ %49, %._crit_edge.loopexit ]
store i32 %.0.lcssa, ptr %7, align 4, !tbaa !25
ret void
}
Expand Down
70 changes: 36 additions & 34 deletions bench/abc/optimized/giaIso2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,9 @@ define void @Gia_Iso2ManPropagate(ptr noundef readonly captures(none) %0) local_
%6 = getelementptr i8, ptr %0, i64 16
%.val51 = load i32, ptr %6, align 8, !tbaa !40
%7 = icmp sgt i32 %.val51, 0
br i1 %7, label %.lr.ph62, label %.critedge2
br i1 %7, label %.lr.ph64, label %.critedge2

.lr.ph62: ; preds = %.critedge.preheader
.lr.ph64: ; preds = %.critedge.preheader
%8 = getelementptr i8, ptr %0, i64 72
%.val53 = load ptr, ptr %8, align 8, !tbaa !30
%9 = getelementptr i8, ptr %.val53, i64 4
Expand All @@ -322,17 +322,18 @@ define void @Gia_Iso2ManPropagate(ptr noundef readonly captures(none) %0) local_
%11 = getelementptr i8, ptr %.val53, i64 8
%.val55.val = load ptr, ptr %11, align 8, !tbaa !32
%.not38 = icmp eq ptr %.val54, null
br i1 %.not38, label %.critedge2, label %.lr.ph62.split
%invariant.gep = getelementptr i8, ptr %.val54, i64 8
br i1 %.not38, label %.critedge2, label %.lr.ph64.split

.lr.ph62.split: ; preds = %.lr.ph62
.lr.ph64.split: ; preds = %.lr.ph64
%12 = getelementptr i8, ptr %0, i64 64
%.val49 = load ptr, ptr %12, align 8, !tbaa !3
%13 = getelementptr i8, ptr %.val49, i64 8
%.val57.val = load ptr, ptr %13, align 8, !tbaa !32
%14 = getelementptr i8, ptr %.val49, i64 4
%.val49.val = load i32, ptr %14, align 4, !tbaa !28
%invariant.op63 = sub i32 %.val49.val, %.val51
%wide.trip.count69 = zext nneg i32 %.val51 to i64
%invariant.op65 = sub i32 %.val49.val, %.val51
%wide.trip.count71 = zext nneg i32 %.val51 to i64
br label %64

15: ; preds = %.lr.ph, %63
Expand Down Expand Up @@ -409,45 +410,46 @@ define void @Gia_Iso2ManPropagate(ptr noundef readonly captures(none) %0) local_
%exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
br i1 %exitcond.not, label %.critedge.preheader, label %15, !llvm.loop !42

64: ; preds = %.lr.ph62.split, %.critedge
%indvars.iv66 = phi i64 [ 0, %.lr.ph62.split ], [ %indvars.iv.next67, %.critedge ]
%65 = trunc nuw nsw i64 %indvars.iv66 to i32
64: ; preds = %.lr.ph64.split, %.critedge
%indvars.iv68 = phi i64 [ 0, %.lr.ph64.split ], [ %indvars.iv.next69, %.critedge ]
%65 = trunc nuw nsw i64 %indvars.iv68 to i32
%.reass = add i32 %invariant.op, %65
%66 = sext i32 %.reass to i64
%67 = getelementptr inbounds i32, ptr %.val55.val, i64 %66
%68 = load i32, ptr %67, align 4, !tbaa !34
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val54, i64 %69
%.reass64 = add i32 %invariant.op63, %65
%71 = sext i32 %.reass64 to i64
%.idx60 = mul nsw i64 %69, 12
%70 = getelementptr inbounds i8, ptr %.val54, i64 %.idx60
%.reass66 = add i32 %invariant.op65, %65
%71 = sext i32 %.reass66 to i64
%72 = getelementptr inbounds i32, ptr %.val57.val, i64 %71
%73 = load i32, ptr %72, align 4, !tbaa !34
%74 = sext i32 %73 to i64
%75 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %.val54, i64 %74
%76 = getelementptr inbounds nuw i8, ptr %70, i64 8
%77 = load i32, ptr %76, align 4, !tbaa !37
%78 = getelementptr inbounds nuw i8, ptr %75, i64 8
%79 = load i32, ptr %78, align 4, !tbaa !37
%80 = add i32 %79, %77
store i32 %80, ptr %78, align 4, !tbaa !37
%81 = load i64, ptr %70, align 4
%82 = and i64 %81, 536870911
%83 = sub nsw i64 0, %82
%84 = getelementptr inbounds %struct.Gia_Obj_t_, ptr %70, i64 %83
%85 = icmp eq ptr %75, %84
br i1 %85, label %86, label %.critedge

86: ; preds = %64
%87 = add i32 %80, 1673142178
store i32 %87, ptr %78, align 4, !tbaa !37
%.idx = mul nsw i64 %74, 12
%75 = getelementptr inbounds nuw i8, ptr %70, i64 8
%76 = load i32, ptr %75, align 4, !tbaa !37
%gep = getelementptr i8, ptr %invariant.gep, i64 %.idx
%77 = load i32, ptr %gep, align 4, !tbaa !37
%78 = add i32 %77, %76
store i32 %78, ptr %gep, align 4, !tbaa !37
%79 = load i64, ptr %70, align 4
%80 = and i64 %79, 536870911
%.idx61 = mul nsw i64 %80, -12
%81 = add nsw i64 %.idx61, %.idx60
%82 = icmp eq i64 %.idx, %81
br i1 %82, label %83, label %.critedge

83: ; preds = %64
%84 = add i32 %78, 1673142178
store i32 %84, ptr %gep, align 4, !tbaa !37
br label %.critedge

.critedge: ; preds = %64, %86
%indvars.iv.next67 = add nuw nsw i64 %indvars.iv66, 1
%exitcond70.not = icmp eq i64 %indvars.iv.next67, %wide.trip.count69
br i1 %exitcond70.not, label %.critedge2, label %64, !llvm.loop !43
.critedge: ; preds = %64, %83
%indvars.iv.next69 = add nuw nsw i64 %indvars.iv68, 1
%exitcond72.not = icmp eq i64 %indvars.iv.next69, %wide.trip.count71
br i1 %exitcond72.not, label %.critedge2, label %64, !llvm.loop !43

.critedge2: ; preds = %.critedge, %.lr.ph62, %.critedge.preheader
.critedge2: ; preds = %.critedge, %.lr.ph64, %.critedge.preheader
ret void
}

Expand Down
Loading