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
288 changes: 143 additions & 145 deletions bench/abc/optimized/abcOrchestration.ll
Original file line number Diff line number Diff line change
Expand Up @@ -6705,55 +6705,56 @@ define noalias noundef ptr @Abc_ManResubQuit2_1(ptr noundef readonly captures(no
%26 = trunc i64 %11 to i32
%27 = xor i32 %25, %26
%28 = and i32 %27, 1
%29 = trunc i64 %15 to i32
%30 = and i32 %29, 1
%.not = icmp eq i32 %30, 0
%31 = and i64 %19, 1
%.not41 = icmp eq i64 %31, 0
%or.cond = or i1 %.not, %.not41
%32 = getelementptr inbounds nuw i8, ptr %17, i64 20
%33 = load i32, ptr %32, align 4
%34 = lshr i32 %33, 7
br i1 %or.cond, label %Dec_GraphAddNodeAnd.exit, label %Dec_GraphAddNodeOr.exit
%29 = and i64 %15, 1
%30 = and i64 %29, %19
%.not = icmp eq i64 %30, 0
br i1 %.not, label %Dec_GraphAddNodeAnd.exit, label %Dec_GraphAddNodeOr.exit

Dec_GraphAddNodeOr.exit: ; preds = %5
%35 = and i32 %34, 1
%36 = getelementptr inbounds nuw i8, ptr %21, i64 20
%37 = load i32, ptr %36, align 4
%38 = lshr i32 %37, 7
%39 = and i32 %38, 1
%40 = getelementptr inbounds nuw i8, ptr %9, i64 80
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %40, i8 0, i64 16, i1 false)
%41 = shl nuw nsw i32 %35, 15
%42 = shl nuw nsw i32 %39, 16
%43 = or disjoint i32 %42, %41
%44 = or disjoint i32 %43, 16384
%45 = xor i32 %35, 3
%46 = xor i32 %39, 5
br label %61
%31 = getelementptr inbounds nuw i8, ptr %17, i64 20
%32 = load i32, ptr %31, align 4
%33 = lshr i32 %32, 7
%34 = and i32 %33, 1
%35 = getelementptr inbounds nuw i8, ptr %21, i64 20
%36 = load i32, ptr %35, align 4
%37 = lshr i32 %36, 7
%41 = and i32 %37, 1
%42 = getelementptr inbounds nuw i8, ptr %9, i64 80
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %42, i8 0, i64 16, i1 false)
%40 = shl nuw nsw i32 %34, 15
%41 = shl nuw nsw i32 %38, 16
%42 = or disjoint i32 %41, %40
%43 = or disjoint i32 %42, 16384
%44 = xor i32 %34, 3
%45 = xor i32 %38, 5
br label %64

Dec_GraphAddNodeAnd.exit: ; preds = %5
%47 = xor i32 %34, %29
%48 = and i32 %47, 1
%49 = or disjoint i32 %48, 2
%50 = getelementptr inbounds nuw i8, ptr %21, i64 20
%51 = load i32, ptr %50, align 4
%52 = lshr i32 %51, 7
%53 = trunc i64 %19 to i32
%54 = xor i32 %52, %53
%55 = and i32 %54, 1
%56 = or disjoint i32 %55, 4
%57 = getelementptr inbounds nuw i8, ptr %9, i64 80
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %57, i8 0, i64 16, i1 false)
%58 = shl nuw nsw i32 %48, 15
%59 = shl nuw nsw i32 %55, 16
%60 = or disjoint i32 %59, %58
br label %61

61: ; preds = %Dec_GraphAddNodeAnd.exit, %Dec_GraphAddNodeOr.exit
%.sink68 = phi i32 [ %49, %Dec_GraphAddNodeAnd.exit ], [ %45, %Dec_GraphAddNodeOr.exit ]
%.sink67 = phi i32 [ %56, %Dec_GraphAddNodeAnd.exit ], [ %46, %Dec_GraphAddNodeOr.exit ]
%.sink = phi i32 [ %60, %Dec_GraphAddNodeAnd.exit ], [ %44, %Dec_GraphAddNodeOr.exit ]
%46 = trunc i64 %15 to i32
%47 = getelementptr inbounds nuw i8, ptr %17, i64 20
%51 = load i32, ptr %47, align 4
%49 = lshr i32 %51, 7
%52 = xor i32 %49, %46
%51 = and i32 %50, 1
%52 = or disjoint i32 %51, 2
%55 = getelementptr inbounds nuw i8, ptr %21, i64 20
%54 = load i32, ptr %53, align 4
%55 = lshr i32 %54, 7
%56 = trunc i64 %19 to i32
%57 = xor i32 %57, %56
%58 = and i32 %57, 1
%59 = or disjoint i32 %58, 4
%60 = getelementptr inbounds nuw i8, ptr %9, i64 80
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %60, i8 0, i64 16, i1 false)
%61 = shl nuw nsw i32 %51, 15
%62 = shl nuw nsw i32 %58, 16
%63 = or disjoint i32 %64, %61
br label %64

64: ; preds = %Dec_GraphAddNodeAnd.exit, %Dec_GraphAddNodeOr.exit
%.sink68 = phi i32 [ %52, %Dec_GraphAddNodeAnd.exit ], [ %44, %Dec_GraphAddNodeOr.exit ]
%.sink67 = phi i32 [ %59, %Dec_GraphAddNodeAnd.exit ], [ %45, %Dec_GraphAddNodeOr.exit ]
%.sink = phi i32 [ %63, %Dec_GraphAddNodeAnd.exit ], [ %43, %Dec_GraphAddNodeOr.exit ]
%.sroa.015.0 = phi i32 [ 6, %Dec_GraphAddNodeAnd.exit ], [ 7, %Dec_GraphAddNodeOr.exit ]
%62 = getelementptr inbounds nuw i8, ptr %9, i64 72
store i32 %.sink68, ptr %62, align 8
Expand All @@ -6768,7 +6769,7 @@ Dec_GraphAddNodeAnd.exit: ; preds = %5
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %66, i8 0, i64 16, i1 false)
br i1 %.not42, label %Dec_GraphAddNodeAnd.exit65, label %Dec_GraphAddNodeOr.exit58

Dec_GraphAddNodeOr.exit58: ; preds = %61
Dec_GraphAddNodeOr.exit58: ; preds = %64
%67 = getelementptr inbounds nuw i8, ptr %9, i64 100
%68 = getelementptr inbounds nuw i8, ptr %9, i64 112
%69 = shl nuw nsw i32 %28, 15
Expand All @@ -6783,7 +6784,7 @@ Dec_GraphAddNodeOr.exit58: ; preds = %61
store i32 %75, ptr %67, align 4
br label %82

Dec_GraphAddNodeAnd.exit65: ; preds = %61
Dec_GraphAddNodeAnd.exit65: ; preds = %64
store i32 %28, ptr %65, align 8, !tbaa !66
%76 = getelementptr inbounds nuw i8, ptr %9, i64 100
store i32 %.sroa.015.0, ptr %76, align 4, !tbaa !66
Expand Down Expand Up @@ -6846,47 +6847,41 @@ define noalias noundef ptr @Abc_ManResubQuit3_1(ptr noundef readonly captures(no
%26 = inttoptr i64 %25 to ptr
%27 = getelementptr inbounds nuw i8, ptr %10, i64 80
store ptr %26, ptr %27, align 8, !tbaa !66
%28 = trunc i64 %12 to i32
%29 = and i32 %28, 1
%.not = icmp eq i32 %29, 0
%30 = and i64 %16, 1
%.not80 = icmp eq i64 %30, 0
%or.cond = or i1 %.not, %.not80
%31 = getelementptr inbounds nuw i8, ptr %14, i64 20
%32 = load i32, ptr %31, align 4
%33 = lshr i32 %32, 7
br i1 %or.cond, label %Dec_GraphAddNodeAnd.exit109, label %Dec_GraphAddNodeOr.exit
%28 = and i64 %12, 1
%29 = and i64 %28, %16
%.not = icmp eq i64 %29, 0
br i1 %.not, label %Dec_GraphAddNodeAnd.exit109, label %Dec_GraphAddNodeOr.exit

Dec_GraphAddNodeOr.exit: ; preds = %6
%34 = and i32 %33, 1
%35 = getelementptr inbounds nuw i8, ptr %18, i64 20
%36 = load i32, ptr %35, align 4
%37 = lshr i32 %36, 7
%38 = and i32 %37, 1
%39 = getelementptr inbounds nuw i8, ptr %10, i64 96
%40 = getelementptr inbounds nuw i8, ptr %10, i64 104
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %40, i8 0, i64 16, i1 false)
%41 = getelementptr inbounds nuw i8, ptr %10, i64 100
%42 = getelementptr inbounds nuw i8, ptr %10, i64 112
%43 = shl nuw nsw i32 %34, 15
%44 = shl nuw nsw i32 %38, 16
%45 = or disjoint i32 %44, %43
%46 = or disjoint i32 %45, 16384
store i32 %46, ptr %42, align 8
%47 = xor i32 %34, 1
store i32 %47, ptr %39, align 8
%48 = xor i32 %38, 3
store i32 %48, ptr %41, align 4
%49 = trunc i64 %20 to i32
%50 = and i32 %49, 1
%.not83 = icmp eq i32 %50, 0
%51 = and i64 %24, 1
%.not84 = icmp eq i64 %51, 0
%or.cond140 = or i1 %.not83, %.not84
%30 = getelementptr inbounds nuw i8, ptr %14, i64 20
%31 = load i32, ptr %30, align 4
%32 = lshr i32 %31, 7
%33 = and i32 %32, 1
%34 = getelementptr inbounds nuw i8, ptr %18, i64 20
%35 = load i32, ptr %34, align 4
%36 = lshr i32 %35, 7
%37 = and i32 %36, 1
%41 = getelementptr inbounds nuw i8, ptr %10, i64 96
%42 = getelementptr inbounds nuw i8, ptr %10, i64 104
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %39, i8 0, i64 16, i1 false)
%40 = getelementptr inbounds nuw i8, ptr %10, i64 100
%41 = getelementptr inbounds nuw i8, ptr %10, i64 112
%42 = shl nuw nsw i32 %33, 15
%43 = shl nuw nsw i32 %37, 16
%44 = or disjoint i32 %43, %42
%45 = or disjoint i32 %44, 16384
store i32 %45, ptr %41, align 8
%46 = xor i32 %33, 1
store i32 %46, ptr %38, align 8
%47 = xor i32 %37, 3
store i32 %47, ptr %40, align 4
%51 = and i64 %20, 1
%49 = and i64 %51, %24
%or.cond140.not.not = icmp eq i64 %49, 0
%52 = getelementptr inbounds nuw i8, ptr %26, i64 20
%53 = load i32, ptr %52, align 4
%54 = lshr i32 %53, 7
br i1 %or.cond140, label %Dec_GraphAddNodeAnd.exit, label %Dec_GraphAddNodeOr.exit96
br i1 %or.cond140.not.not, label %Dec_GraphAddNodeAnd.exit, label %Dec_GraphAddNodeOr.exit96

Dec_GraphAddNodeOr.exit96: ; preds = %Dec_GraphAddNodeOr.exit
%55 = and i32 %54, 1
Expand Down Expand Up @@ -6919,56 +6914,58 @@ Dec_GraphAddNodeAnd.exit: ; preds = %Dec_GraphAddNodeOr.
%74 = getelementptr inbounds nuw i8, ptr %22, i64 20
%75 = load i32, ptr %74, align 4
%76 = lshr i32 %75, 7
%77 = xor i32 %76, %49
%78 = and i32 %77, 1
%79 = or disjoint i32 %78, 4
%80 = getelementptr inbounds nuw i8, ptr %10, i64 120
%81 = getelementptr inbounds nuw i8, ptr %10, i64 128
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %81, i8 0, i64 16, i1 false)
store i32 %79, ptr %80, align 8, !tbaa !66
%82 = getelementptr inbounds nuw i8, ptr %10, i64 124
store i32 %73, ptr %82, align 4, !tbaa !66
%83 = getelementptr inbounds nuw i8, ptr %10, i64 136
%84 = shl nuw nsw i32 %78, 15
%85 = shl nuw nsw i32 %72, 16
%86 = or disjoint i32 %85, %84
store i32 %86, ptr %83, align 8
br label %141
%75 = trunc i64 %20 to i32
%76 = xor i32 %74, %75
%77 = and i32 %76, 1
%78 = or disjoint i32 %77, 4
%81 = getelementptr inbounds nuw i8, ptr %10, i64 120
%80 = getelementptr inbounds nuw i8, ptr %10, i64 128
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %80, i8 0, i64 16, i1 false)
store i32 %78, ptr %81, align 8, !tbaa !66
%78 = getelementptr inbounds nuw i8, ptr %10, i64 124
store i32 %68, ptr %81, align 4, !tbaa !66
%82 = getelementptr inbounds nuw i8, ptr %10, i64 136
%85 = shl nuw nsw i32 %77, 15
%84 = shl nuw nsw i32 %70, 16
%85 = or disjoint i32 %84, %83
store i32 %85, ptr %82, align 8
br label %144

Dec_GraphAddNodeAnd.exit109: ; preds = %6
%87 = xor i32 %33, %28
%88 = and i32 %87, 1
%89 = getelementptr inbounds nuw i8, ptr %18, i64 20
%90 = load i32, ptr %89, align 4
%91 = lshr i32 %90, 7
%92 = trunc i64 %16 to i32
%93 = xor i32 %91, %92
%94 = and i32 %93, 1
%95 = or disjoint i32 %94, 2
%96 = getelementptr inbounds nuw i8, ptr %10, i64 96
%97 = getelementptr inbounds nuw i8, ptr %10, i64 104
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %97, i8 0, i64 16, i1 false)
store i32 %88, ptr %96, align 8, !tbaa !66
%98 = getelementptr inbounds nuw i8, ptr %10, i64 100
store i32 %95, ptr %98, align 4, !tbaa !66
%99 = getelementptr inbounds nuw i8, ptr %10, i64 112
%100 = shl nuw nsw i32 %88, 15
%101 = shl nuw nsw i32 %94, 16
%102 = or disjoint i32 %101, %100
store i32 %102, ptr %99, align 8
%103 = trunc i64 %20 to i32
%104 = and i32 %103, 1
%.not81 = icmp eq i32 %104, 0
%105 = and i64 %24, 1
%.not82 = icmp eq i64 %105, 0
%or.cond142 = or i1 %.not81, %.not82
%106 = getelementptr inbounds nuw i8, ptr %26, i64 20
%107 = load i32, ptr %106, align 4
%108 = lshr i32 %107, 7
br i1 %or.cond142, label %Dec_GraphAddNodeAnd.exit123, label %Dec_GraphAddNodeOr.exit116
%86 = trunc i64 %12 to i32
%87 = getelementptr inbounds nuw i8, ptr %14, i64 20
%88 = load i32, ptr %87, align 4
%86 = lshr i32 %88, 7
%90 = xor i32 %89, %86
%91 = and i32 %90, 1
%92 = getelementptr inbounds nuw i8, ptr %18, i64 20
%93 = load i32, ptr %92, align 4
%94 = lshr i32 %93, 7
%95 = trunc i64 %16 to i32
%96 = xor i32 %94, %95
%97 = and i32 %96, 1
%98 = or disjoint i32 %97, 2
%98 = getelementptr inbounds nuw i8, ptr %10, i64 96
%100 = getelementptr inbounds nuw i8, ptr %10, i64 104
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %100, i8 0, i64 16, i1 false)
store i32 %88, ptr %99, align 8, !tbaa !66
%101 = getelementptr inbounds nuw i8, ptr %10, i64 100
store i32 %98, ptr %101, align 4, !tbaa !66
%102 = getelementptr inbounds nuw i8, ptr %10, i64 112
%103 = shl nuw nsw i32 %91, 15
%104 = shl nuw nsw i32 %97, 16
%105 = or disjoint i32 %104, %103
store i32 %105, ptr %102, align 8
%106 = and i64 %20, 1
%107 = and i64 %106, %24
%or.cond142.not.not = icmp eq i64 %107, 0
%108 = getelementptr inbounds nuw i8, ptr %26, i64 20
%109 = load i32, ptr %108, align 4
%110 = lshr i32 %109, 7
br i1 %or.cond142.not.not, label %Dec_GraphAddNodeAnd.exit123, label %Dec_GraphAddNodeOr.exit116

Dec_GraphAddNodeOr.exit116: ; preds = %Dec_GraphAddNodeAnd.exit109
%109 = and i32 %108, 1
%109 = and i32 %110, 1
%110 = getelementptr inbounds nuw i8, ptr %22, i64 20
%111 = load i32, ptr %110, align 4
%112 = lshr i32 %111, 7
Expand All @@ -6991,27 +6988,28 @@ Dec_GraphAddNodeOr.exit116: ; preds = %Dec_GraphAddNodeAnd

Dec_GraphAddNodeAnd.exit123: ; preds = %Dec_GraphAddNodeAnd.exit109
%124 = trunc i64 %24 to i32
%125 = xor i32 %108, %124
%125 = xor i32 %110, %124
%126 = and i32 %125, 1
%127 = or disjoint i32 %126, 6
%128 = getelementptr inbounds nuw i8, ptr %22, i64 20
%129 = load i32, ptr %128, align 4
%130 = lshr i32 %129, 7
%131 = xor i32 %130, %103
%132 = and i32 %131, 1
%133 = or disjoint i32 %132, 4
%134 = getelementptr inbounds nuw i8, ptr %10, i64 120
%135 = getelementptr inbounds nuw i8, ptr %10, i64 128
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %135, i8 0, i64 16, i1 false)
store i32 %133, ptr %134, align 8, !tbaa !66
%136 = getelementptr inbounds nuw i8, ptr %10, i64 124
store i32 %127, ptr %136, align 4, !tbaa !66
%137 = getelementptr inbounds nuw i8, ptr %10, i64 136
%138 = shl nuw nsw i32 %132, 15
%139 = shl nuw nsw i32 %126, 16
%140 = or disjoint i32 %139, %138
store i32 %140, ptr %137, align 8
br label %141
%133 = trunc i64 %20 to i32
%134 = xor i32 %132, %133
%135 = and i32 %134, 1
%136 = or disjoint i32 %135, 4
%135 = getelementptr inbounds nuw i8, ptr %10, i64 120
%138 = getelementptr inbounds nuw i8, ptr %10, i64 128
tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %138, i8 0, i64 16, i1 false)
store i32 %136, ptr %137, align 8, !tbaa !66
%139 = getelementptr inbounds nuw i8, ptr %10, i64 124
store i32 %129, ptr %139, align 4, !tbaa !66
%140 = getelementptr inbounds nuw i8, ptr %10, i64 136
%139 = shl nuw nsw i32 %135, 15
%142 = shl nuw nsw i32 %128, 16
%143 = or disjoint i32 %142, %139
store i32 %143, ptr %140, align 8
br label %144

141: ; preds = %Dec_GraphAddNodeOr.exit116, %Dec_GraphAddNodeAnd.exit123, %Dec_GraphAddNodeOr.exit96, %Dec_GraphAddNodeAnd.exit
%.sroa.032.0 = phi i32 [ 11, %Dec_GraphAddNodeOr.exit96 ], [ 10, %Dec_GraphAddNodeAnd.exit ], [ 11, %Dec_GraphAddNodeOr.exit116 ], [ 10, %Dec_GraphAddNodeAnd.exit123 ]
Expand Down
Loading