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
40 changes: 16 additions & 24 deletions bench/abc/optimized/abc.ll
Original file line number Diff line number Diff line change
Expand Up @@ -94332,26 +94332,22 @@ define internal fastcc i64 @Abc_Tt6Stretch(i64 noundef %0, i32 noundef %1) unnam
%8 = select i1 %3, i64 %5, i64 %7
%9 = mul nuw nsw i64 %8, 5
%.126 = select i1 %6, i64 %9, i64 %0
%.1 = tail call i32 @llvm.umax.i32(i32 %1, i32 2)
%10 = icmp ult i32 %1, 3
%11 = and i64 %.126, 15
%12 = mul nuw nsw i64 %11, 17
%.227 = select i1 %10, i64 %12, i64 %0
%.2 = select i1 %10, i32 3, i32 %.1
%13 = icmp eq i32 %.2, 3
%13 = icmp ult i32 %1, 4
%14 = and i64 %.227, 255
%15 = mul nuw nsw i64 %14, 257
%.328 = select i1 %13, i64 %15, i64 %.227
%.3 = select i1 %13, i32 4, i32 %.2
%16 = icmp eq i32 %.3, 4
%.328 = select i1 %13, i64 %15, i64 %0
%16 = icmp ult i32 %1, 5
%17 = and i64 %.328, 65535
%18 = mul nuw nsw i64 %17, 65537
%.429 = select i1 %16, i64 %18, i64 %.328
%19 = and i32 %.3, -2
%20 = icmp eq i32 %19, 4
%21 = and i64 %.429, 4294967295
%22 = mul nuw i64 %21, 4294967297
%.5 = select i1 %20, i64 %22, i64 %.429
%.429 = select i1 %16, i64 %18, i64 %0
%19 = icmp ult i32 %1, 6
%20 = and i64 %.429, 4294967295
%21 = mul nuw i64 %20, 4294967297
%.5 = select i1 %19, i64 %21, i64 %0
ret i64 %.5
}

Expand Down Expand Up @@ -94773,26 +94769,22 @@ Abc_TtReadHexDigit.exit: ; preds = %46, %50, %52
%68 = and i64 %66, 3
%69 = mul nuw nsw i64 %68, 5
%.126.i = select i1 %67, i64 %69, i64 %66
%.1.i = tail call i32 @llvm.umax.i32(i32 %38, i32 2)
%70 = icmp ult i32 %38, 3
%71 = and i64 %.126.i, 15
%72 = mul nuw nsw i64 %71, 17
%.227.i = select i1 %70, i64 %72, i64 %66
%.2.i = select i1 %70, i32 3, i32 %.1.i
%73 = icmp eq i32 %.2.i, 3
%73 = icmp ult i32 %38, 4
%74 = and i64 %.227.i, 255
%75 = mul nuw nsw i64 %74, 257
%.328.i = select i1 %73, i64 %75, i64 %.227.i
%.3.i = select i1 %73, i32 4, i32 %.2.i
%76 = icmp eq i32 %.3.i, 4
%.328.i = select i1 %73, i64 %75, i64 %66
%76 = icmp ult i32 %38, 5
%77 = and i64 %.328.i, 65535
%78 = mul nuw nsw i64 %77, 65537
%.429.i = select i1 %76, i64 %78, i64 %.328.i
%79 = and i32 %.3.i, -2
%80 = icmp eq i32 %79, 4
%81 = and i64 %.429.i, 4294967295
%82 = mul nuw i64 %81, 4294967297
%.5.i = select i1 %80, i64 %82, i64 %.429.i
%.429.i = select i1 %76, i64 %78, i64 %66
%79 = icmp ult i32 %38, 6
%80 = and i64 %.429.i, 4294967295
%81 = mul nuw i64 %80, 4294967297
%.5.i = select i1 %79, i64 %81, i64 %66
br label %.sink.split

.sink.split: ; preds = %22, %25, %65
Expand Down
44 changes: 18 additions & 26 deletions bench/abc/optimized/bmcMaj2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -3847,13 +3847,13 @@ define internal fastcc void @Abc_TtReadHex(ptr noundef nonnull captures(none) %0

._crit_edge: ; preds = %.lr.ph
%indvars = trunc i64 %indvars.iv.next to i32
switch i32 %indvars, label %.thread70 [
switch i32 %indvars, label %.thread69 [
i32 1, label %21
i32 0, label %.lr.ph52.preheader
]

21: ; preds = %._crit_edge
switch i8 %10, label %.lr.ph52.preheader [
switch i8 %10, label %.lr.ph51.preheader [
i8 48, label %22
i8 70, label %22
i8 53, label %25
Expand Down Expand Up @@ -3885,17 +3885,17 @@ define internal fastcc void @Abc_TtReadHex(ptr noundef nonnull captures(none) %0
br i1 %.not83, label %.preheader, label %.lr.ph52.preheader

.lr.ph52.preheader: ; preds = %._crit_edge, %9, %.thread70, %21, %.thread
%34 = phi i32 [ %33, %.thread ], [ 1, %21 ], [ 1, %.thread70 ], [ 1, %9 ], [ 1, %._crit_edge ]
%35 = phi i32 [ %30, %.thread ], [ 2, %21 ], [ %30, %.thread70 ], [ 2, %9 ], [ 2, %._crit_edge ]
%.0.lcssa6977 = phi i32 [ %indvars, %.thread ], [ 1, %21 ], [ %indvars, %.thread70 ], [ 0, %9 ], [ %indvars, %._crit_edge ]
%34 = phi i32 [ %33, %.thread ], [ 1, %21 ], [ 1, %.thread69 ], [ 1, %9 ], [ 1, %._crit_edge ]
%35 = phi i32 [ %30, %.thread ], [ 2, %21 ], [ %30, %.thread69 ], [ 2, %9 ], [ 2, %._crit_edge ]
%.0.lcssa6977 = phi i32 [ %indvars, %.thread ], [ 1, %21 ], [ %indvars, %.thread69 ], [ 0, %9 ], [ %indvars, %._crit_edge ]
%36 = zext nneg i32 %34 to i64
%37 = shl nuw nsw i64 %36, 3
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %0, i8 0, i64 %37, i1 false), !tbaa !58
br label %.preheader

.preheader: ; preds = %.lr.ph52.preheader, %.thread
%38 = phi i32 [ %35, %.lr.ph52.preheader ], [ %30, %.thread ]
%.0.lcssa6976 = phi i32 [ %.0.lcssa6977, %.lr.ph52.preheader ], [ %indvars, %.thread ]
%38 = phi i32 [ %35, %.lr.ph51.preheader ], [ %30, %.thread ]
%.0.lcssa6976 = phi i32 [ %.0.lcssa6977, %.lr.ph51.preheader ], [ %indvars, %.thread ]
%.not = icmp eq i32 %.0.lcssa6976, 0
br i1 %.not, label %._crit_edge55, label %.lr.ph54.preheader

Expand All @@ -3906,7 +3906,7 @@ define internal fastcc void @Abc_TtReadHex(ptr noundef nonnull captures(none) %0
br label %.lr.ph54

.lr.ph54: ; preds = %.lr.ph54.preheader, %Abc_TtReadHexDigit.exit
%indvars.iv63 = phi i64 [ 0, %.lr.ph54.preheader ], [ %indvars.iv.next64, %Abc_TtReadHexDigit.exit ]
%indvars.iv63 = phi i64 [ 0, %.lr.ph53.preheader ], [ %indvars.iv.next64, %Abc_TtReadHexDigit.exit ]
%41 = xor i64 %indvars.iv63, -1
%42 = getelementptr i8, ptr %40, i64 %41
%43 = load i8, ptr %42, align 1, !tbaa !155
Expand Down Expand Up @@ -3957,31 +3957,26 @@ Abc_TtReadHexDigit.exit: ; preds = %46, %50, %52

65: ; preds = %._crit_edge55
%66 = load i64, ptr %0, align 8, !tbaa !58
%.0.i43 = tail call i32 @llvm.umax.i32(i32 range(i32 -2147483648, 6) %38, i32 1)
%67 = icmp ult i32 %38, 2
%68 = and i64 %66, 3
%69 = mul nuw nsw i64 %68, 5
%.126.i = select i1 %67, i64 %69, i64 %66
%.1.i = select i1 %67, i32 2, i32 %.0.i43
%70 = icmp eq i32 %.1.i, 2
%70 = icmp ult i32 %38, 3
%71 = and i64 %.126.i, 15
%72 = mul nuw nsw i64 %71, 17
%.227.i = select i1 %70, i64 %72, i64 %.126.i
%.2.i = select i1 %70, i32 3, i32 %.1.i
%73 = icmp eq i32 %.2.i, 3
%.227.i = select i1 %70, i64 %72, i64 %66
%73 = icmp ult i32 %38, 4
%74 = and i64 %.227.i, 255
%75 = mul nuw nsw i64 %74, 257
%.328.i = select i1 %73, i64 %75, i64 %.227.i
%.3.i = select i1 %73, i32 4, i32 %.2.i
%76 = icmp eq i32 %.3.i, 4
%.328.i = select i1 %73, i64 %75, i64 %66
%76 = icmp ult i32 %38, 5
%77 = and i64 %.328.i, 65535
%78 = mul nuw nsw i64 %77, 65537
%.429.i = select i1 %76, i64 %78, i64 %.328.i
%79 = and i32 %.3.i, -2
%80 = icmp eq i32 %79, 4
%81 = and i64 %.429.i, 4294967295
%82 = mul nuw i64 %81, 4294967297
%.5.i = select i1 %80, i64 %82, i64 %.429.i
%.429.i = select i1 %76, i64 %78, i64 %66
%79 = icmp ult i32 %38, 6
%80 = and i64 %.429.i, 4294967295
%81 = mul nuw i64 %80, 4294967297
%.5.i = select i1 %79, i64 %81, i64 %66
br label %.sink.split

.sink.split: ; preds = %22, %25, %65
Expand Down Expand Up @@ -6542,9 +6537,6 @@ declare i32 @llvm.smax.i32(i32, i32) #17
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.ctlz.i32(i32, i1 immarg) #17

; Function Attrs: nocallback 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nofree nounwind "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
41 changes: 18 additions & 23 deletions bench/abc/optimized/bmcMaj3.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6469,13 +6469,13 @@ define internal fastcc void @Abc_TtReadHex(ptr noundef captures(none) %0, ptr no

._crit_edge: ; preds = %.lr.ph
%indvars = trunc i64 %indvars.iv.next to i32
switch i32 %indvars, label %.thread70 [
switch i32 %indvars, label %.thread69 [
i32 1, label %21
i32 0, label %.lr.ph52.preheader
]

21: ; preds = %._crit_edge
switch i8 %10, label %.lr.ph52.preheader [
switch i8 %10, label %.lr.ph51.preheader [
i8 48, label %22
i8 70, label %22
i8 53, label %25
Expand Down Expand Up @@ -6507,17 +6507,17 @@ define internal fastcc void @Abc_TtReadHex(ptr noundef captures(none) %0, ptr no
br i1 %.not83, label %.preheader, label %.lr.ph52.preheader

.lr.ph52.preheader: ; preds = %._crit_edge, %9, %.thread70, %21, %.thread
%34 = phi i32 [ %33, %.thread ], [ 1, %21 ], [ 1, %.thread70 ], [ 1, %9 ], [ 1, %._crit_edge ]
%35 = phi i32 [ %30, %.thread ], [ 2, %21 ], [ %30, %.thread70 ], [ 2, %9 ], [ 2, %._crit_edge ]
%.0.lcssa6977 = phi i32 [ %indvars, %.thread ], [ 1, %21 ], [ %indvars, %.thread70 ], [ 0, %9 ], [ %indvars, %._crit_edge ]
%34 = phi i32 [ %33, %.thread ], [ 1, %21 ], [ 1, %.thread69 ], [ 1, %9 ], [ 1, %._crit_edge ]
%35 = phi i32 [ %30, %.thread ], [ 2, %21 ], [ %30, %.thread69 ], [ 2, %9 ], [ 2, %._crit_edge ]
%.0.lcssa6977 = phi i32 [ %indvars, %.thread ], [ 1, %21 ], [ %indvars, %.thread69 ], [ 0, %9 ], [ %indvars, %._crit_edge ]
%36 = zext nneg i32 %34 to i64
%37 = shl nuw nsw i64 %36, 3
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %0, i8 0, i64 %37, i1 false), !tbaa !19
br label %.preheader

.preheader: ; preds = %.lr.ph52.preheader, %.thread
%38 = phi i32 [ %35, %.lr.ph52.preheader ], [ %30, %.thread ]
%.0.lcssa6976 = phi i32 [ %.0.lcssa6977, %.lr.ph52.preheader ], [ %indvars, %.thread ]
%38 = phi i32 [ %35, %.lr.ph51.preheader ], [ %30, %.thread ]
%.0.lcssa6976 = phi i32 [ %.0.lcssa6977, %.lr.ph51.preheader ], [ %indvars, %.thread ]
%.not = icmp eq i32 %.0.lcssa6976, 0
br i1 %.not, label %._crit_edge55, label %.lr.ph54.preheader

Expand All @@ -6528,7 +6528,7 @@ define internal fastcc void @Abc_TtReadHex(ptr noundef captures(none) %0, ptr no
br label %.lr.ph54

.lr.ph54: ; preds = %.lr.ph54.preheader, %Abc_TtReadHexDigit.exit
%indvars.iv63 = phi i64 [ 0, %.lr.ph54.preheader ], [ %indvars.iv.next64, %Abc_TtReadHexDigit.exit ]
%indvars.iv63 = phi i64 [ 0, %.lr.ph53.preheader ], [ %indvars.iv.next64, %Abc_TtReadHexDigit.exit ]
%41 = xor i64 %indvars.iv63, -1
%42 = getelementptr i8, ptr %40, i64 %41
%43 = load i8, ptr %42, align 1, !tbaa !185
Expand Down Expand Up @@ -6579,31 +6579,26 @@ Abc_TtReadHexDigit.exit: ; preds = %46, %50, %52

65: ; preds = %._crit_edge55
%66 = load i64, ptr %0, align 8, !tbaa !19
%.0.i43 = tail call i32 @llvm.umax.i32(i32 range(i32 -2147483648, 6) %38, i32 1)
%67 = icmp ult i32 %38, 2
%68 = and i64 %66, 3
%69 = mul nuw nsw i64 %68, 5
%.126.i = select i1 %67, i64 %69, i64 %66
%.1.i = select i1 %67, i32 2, i32 %.0.i43
%70 = icmp eq i32 %.1.i, 2
%70 = icmp ult i32 %38, 3
%71 = and i64 %.126.i, 15
%72 = mul nuw nsw i64 %71, 17
%.227.i = select i1 %70, i64 %72, i64 %.126.i
%.2.i = select i1 %70, i32 3, i32 %.1.i
%73 = icmp eq i32 %.2.i, 3
%.227.i = select i1 %70, i64 %72, i64 %66
%73 = icmp ult i32 %38, 4
%74 = and i64 %.227.i, 255
%75 = mul nuw nsw i64 %74, 257
%.328.i = select i1 %73, i64 %75, i64 %.227.i
%.3.i = select i1 %73, i32 4, i32 %.2.i
%76 = icmp eq i32 %.3.i, 4
%.328.i = select i1 %73, i64 %75, i64 %66
%76 = icmp ult i32 %38, 5
%77 = and i64 %.328.i, 65535
%78 = mul nuw nsw i64 %77, 65537
%.429.i = select i1 %76, i64 %78, i64 %.328.i
%79 = and i32 %.3.i, -2
%80 = icmp eq i32 %79, 4
%81 = and i64 %.429.i, 4294967295
%82 = mul nuw i64 %81, 4294967297
%.5.i = select i1 %80, i64 %82, i64 %.429.i
%.429.i = select i1 %76, i64 %78, i64 %66
%79 = icmp ult i32 %38, 6
%80 = and i64 %.429.i, 4294967295
%81 = mul nuw i64 %80, 4294967297
%.5.i = select i1 %79, i64 %81, i64 %66
br label %.sink.split

.sink.split: ; preds = %22, %25, %65
Expand Down
Loading