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
116 changes: 55 additions & 61 deletions bench/abc/optimized/aigRet.ll
Original file line number Diff line number Diff line change
Expand Up @@ -611,15 +611,11 @@ define void @Rtm_ObjRetimeFwd(ptr noundef captures(none) %0, ptr noundef capture
%24 = and i32 %15, -4096
%25 = or disjoint i32 %19, %24
store i32 %25, ptr %gep, align 8
%26 = lshr i32 %15, 4
%27 = and i32 %26, 255
%28 = and i32 %15, 15
%29 = icmp ne i32 %28, 0
%30 = zext i1 %29 to i32
%31 = add nuw nsw i32 %27, %30
%32 = zext nneg i32 %31 to i64
%33 = getelementptr inbounds nuw i32, ptr %23, i64 %32
%.01.i.i = getelementptr inbounds i8, ptr %33, i64 -4
%26 = add nuw nsw i32 %16, 15
%27 = lshr i32 %26, 4
%28 = zext nneg i32 %27 to i64
%29 = getelementptr inbounds nuw i32, ptr %23, i64 %28
%.01.i.i = getelementptr inbounds i8, ptr %29, i64 -4
%.not2.i.i = icmp ult ptr %.01.i.i, %23
br i1 %.not2.i.i, label %Rtm_ObjRemFirst2.exit.i, label %.lr.ph.i.i

Expand Down Expand Up @@ -648,8 +644,8 @@ Rtm_ObjRemFirst2.exit.loopexit.i: ; preds = %.lr.ph.i.i
br label %Rtm_ObjRemFirst2.exit.i

Rtm_ObjRemFirst2.exit.i: ; preds = %Rtm_ObjRemFirst2.exit.loopexit.i, %37, %20
%43 = phi i32 [ %42, %37 ], [ %25, %20 ], [ %.pre.i, %Rtm_ObjRemFirst2.exit.loopexit.i ]
%44 = phi i32 [ %39, %37 ], [ 0, %20 ], [ %35, %Rtm_ObjRemFirst2.exit.loopexit.i ]
%43 = phi i32 [ %42, %33 ], [ %25, %20 ], [ %.pre.i, %Rtm_ObjRemFirst2.exit.loopexit.i ]
%44 = phi i32 [ %39, %33 ], [ 0, %20 ], [ %35, %Rtm_ObjRemFirst2.exit.loopexit.i ]
%45 = and i32 %43, 4095
%46 = icmp eq i32 %45, 10
br i1 %46, label %47, label %Rtm_ObjRemFirst.exit
Expand Down Expand Up @@ -736,17 +732,17 @@ Rtm_ObjRemFirst.exit: ; preds = %Rtm_ObjRemFirst2.ex
br label %92

92: ; preds = %90, %88
%.pre16.i.i = phi i32 [ %.pre16.pre.i.i, %88 ], [ %80, %90 ]
%93 = phi ptr [ %89, %88 ], [ %91, %90 ]
%.pre16.i.i = phi i32 [ %.pre16.pre.i.i, %84 ], [ %80, %86 ]
%93 = phi ptr [ %89, %84 ], [ %91, %86 ]
store ptr %93, ptr %13, align 8, !tbaa !33
store i32 %84, ptr %12, align 4, !tbaa !49
%.pre.i25 = load i32, ptr %75, align 8
br label %Rtm_ObjTransferToBig.exit.i

Rtm_ObjTransferToBig.exit.i: ; preds = %92, %._crit_edge.i.i
%94 = phi i32 [ %76, %._crit_edge.i.i ], [ %.pre.i25, %92 ]
%95 = phi i32 [ %80, %._crit_edge.i.i ], [ %.pre16.i.i, %92 ]
%96 = phi ptr [ %.pre.i.i, %._crit_edge.i.i ], [ %93, %92 ]
%94 = phi i32 [ %76, %._crit_edge.i.i ], [ %.pre.i25, %88 ]
%95 = phi i32 [ %80, %._crit_edge.i.i ], [ %.pre16.i.i, %88 ]
%96 = phi ptr [ %.pre.i.i, %._crit_edge.i.i ], [ %93, %88 ]
%97 = lshr i32 %94, 12
%98 = sext i32 %95 to i64
%99 = getelementptr inbounds i32, ptr %96, i64 %98
Expand All @@ -759,12 +755,12 @@ Rtm_ObjTransferToBig.exit.i: ; preds = %92, %._crit_edge.i.
%104 = and i32 %102, 4095
%105 = or disjoint i32 %104, %103
store i32 %105, ptr %75, align 8
br label %150
br label %146

106: ; preds = %66
%107 = and i32 %76, 15
%108 = icmp eq i32 %107, 15
br i1 %108, label %109, label %150
br i1 %108, label %109, label %146

109: ; preds = %106
%110 = add nuw nsw i32 %77, 1
Expand Down Expand Up @@ -798,17 +794,17 @@ Rtm_ObjTransferToBig.exit.i: ; preds = %92, %._crit_edge.i.
br label %125

125: ; preds = %123, %121
%.pre25.i.i = phi i32 [ %.pre25.pre.i.i, %121 ], [ %112, %123 ]
%126 = phi ptr [ %122, %121 ], [ %124, %123 ]
%.pre25.i.i = phi i32 [ %.pre25.pre.i.i, %117 ], [ %112, %119 ]
%126 = phi ptr [ %122, %117 ], [ %124, %119 ]
store ptr %126, ptr %13, align 8, !tbaa !33
store i32 %117, ptr %12, align 4, !tbaa !49
%.pre26.i.i = load i32, ptr %75, align 8
br label %Rtm_ObjTransferToBigger.exit.i

Rtm_ObjTransferToBigger.exit.i: ; preds = %125, %._crit_edge.i12.i
%127 = phi i32 [ %76, %._crit_edge.i12.i ], [ %.pre26.i.i, %125 ]
%128 = phi i32 [ %112, %._crit_edge.i12.i ], [ %.pre25.i.i, %125 ]
%129 = phi ptr [ %.pre.i14.i, %._crit_edge.i12.i ], [ %126, %125 ]
%127 = phi i32 [ %76, %._crit_edge.i12.i ], [ %.pre26.i.i, %121 ]
%128 = phi i32 [ %112, %._crit_edge.i12.i ], [ %.pre25.i.i, %121 ]
%129 = phi ptr [ %.pre.i14.i, %._crit_edge.i12.i ], [ %126, %121 ]
%130 = sext i32 %128 to i64
%131 = getelementptr inbounds i32, ptr %129, i64 %130
%132 = lshr i32 %127, 12
Expand All @@ -818,36 +814,36 @@ Rtm_ObjTransferToBigger.exit.i: ; preds = %125, %._crit_edge.i
%136 = zext nneg i32 %135 to i64
tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %131, ptr noundef nonnull align 4 dereferenceable(1) %134, i64 %136, i1 false)
%137 = load ptr, ptr %13, align 8, !tbaa !33
%134 = load i32, ptr %11, align 8, !tbaa !48
%135 = add nsw i32 %134, %107
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds i32, ptr %133, i64 %136
store i32 0, ptr %137, align 4, !tbaa !29
%138 = load i32, ptr %11, align 8, !tbaa !48
%139 = add nsw i32 %138, %111
%140 = sext i32 %139 to i64
%141 = getelementptr inbounds i32, ptr %137, i64 %140
store i32 0, ptr %141, align 4, !tbaa !29
%142 = load i32, ptr %11, align 8, !tbaa !48
%143 = load i32, ptr %75, align 8
%144 = shl i32 %142, 12
%145 = and i32 %143, 4095
%146 = or disjoint i32 %145, %144
store i32 %146, ptr %75, align 8
%147 = add nuw nsw i32 %111, 1
%148 = load i32, ptr %11, align 8, !tbaa !48
%149 = add nsw i32 %147, %148
store i32 %149, ptr %11, align 8, !tbaa !48
%139 = load i32, ptr %71, align 8
%140 = shl i32 %138, 12
%141 = and i32 %139, 4095
%142 = or disjoint i32 %141, %140
store i32 %142, ptr %71, align 8
%143 = add nuw nsw i32 %107, 1
%144 = load i32, ptr %11, align 8, !tbaa !48
%145 = add nsw i32 %143, %144
store i32 %145, ptr %11, align 8, !tbaa !48
%.pre16.i = load i32, ptr %75, align 8
br label %150
br label %146

150: ; preds = %Rtm_ObjTransferToBigger.exit.i, %106, %Rtm_ObjTransferToBig.exit.i
%151 = phi i32 [ %76, %106 ], [ %.pre16.i, %Rtm_ObjTransferToBigger.exit.i ], [ %105, %Rtm_ObjTransferToBig.exit.i ]
%152 = and i32 %151, 4094
%153 = icmp samesign ugt i32 %152, 9
br i1 %153, label %154, label %171
146:; preds = %Rtm_ObjTransferToBigger.exit.i, %104, %Rtm_ObjTransferToBig.exit.i
%147 = phi i32 [ %72, %102 ], [ %.pre16.i, %Rtm_ObjTransferToBigger.exit.i ], [ %105, %Rtm_ObjTransferToBig.exit.i ]
%148 = and i32 %147, 4094
%149 = icmp samesign ugt i32 %148, 9
br i1 %149, label %150, label %167

154: ; preds = %150
150: ; preds = %146
%.val.i23 = load ptr, ptr %13, align 8, !tbaa !33
%155 = lshr i32 %151, 12
%155 = lshr i32 %147, 12
%156 = zext nneg i32 %155 to i64
%157 = getelementptr inbounds nuw i32, ptr %.val.i23, i64 %156
%158 = and i32 %151, 4095
%158 = and i32 %147, 4095
%159 = shl nuw nsw i32 %158, 1
%160 = and i32 %159, 30
%161 = shl i32 %.022.lcssa, %160
Expand All @@ -864,20 +860,20 @@ Rtm_ObjTransferToBigger.exit.i: ; preds = %125, %._crit_edge.i
%170 = or disjoint i32 %168, %169
br label %Rtm_ObjAddLast.exit

171: ; preds = %150
%172 = shl i32 %151, 1
171: ; preds = %146
%172 = shl i32 %147, 1
%173 = and i32 %172, 8190
%174 = shl i32 %.022.lcssa, %173
%175 = shl i32 %174, 12
%.masked.i.i = and i32 %151, -4096
%narrow.i15.i = add i32 %151, 1
%.masked.i.i = and i32 %147, -4096
%narrow.i15.i = add i32 %147, 1
%176 = and i32 %narrow.i15.i, 4095
%177 = or disjoint i32 %176, %.masked.i.i
%178 = or i32 %177, %175
br label %Rtm_ObjAddLast.exit

Rtm_ObjAddLast.exit: ; preds = %154, %171
%storemerge.i = phi i32 [ %178, %171 ], [ %170, %154 ]
Rtm_ObjAddLast.exit: ; preds = %150, %171
%storemerge.i = phi i32 [ %178, %167 ], [ %170, %150 ]
store i32 %storemerge.i, ptr %75, align 8
%179 = add nuw nsw i32 %.130, 1
%180 = load i32, ptr %7, align 4, !tbaa !41
Expand Down Expand Up @@ -1171,14 +1167,12 @@ Rtm_ObjTransferToBigger.exit: ; preds = %._crit_edge.i12, %5
%95 = and i32 %86, -4096
%96 = or disjoint i32 %94, %95
store i32 %96, ptr %1, align 8
%97 = lshr i32 %94, 4
%98 = and i32 %narrow.i, 15
%99 = icmp ne i32 %98, 0
%100 = zext i1 %99 to i32
%101 = add nuw nsw i32 %97, %100
%102 = zext nneg i32 %101 to i64
%103 = getelementptr inbounds nuw i32, ptr %93, i64 %102
%.not.i15 = icmp eq i32 %101, 0
%97 = add nuw nsw i32 %94, 15
%98 = lshr i32 %97, 4
%99 = zext nneg i32 %98 to i64
%100 = getelementptr inbounds nuw i32, ptr %93, i64 %99
%101 = and i32 %90, 4095
%.not.i15 = icmp eq i32 %101, 4095
br i1 %.not.i15, label %Rtm_ObjAddFirst2.exit, label %.lr.ph.i

.lr.ph.i: ; preds = %89, %.lr.ph.i
Expand All @@ -1190,7 +1184,7 @@ Rtm_ObjTransferToBigger.exit: ; preds = %._crit_edge.i12, %5
%107 = or disjoint i32 %106, %.02.i
store i32 %107, ptr %.0111.i, align 4, !tbaa !29
%108 = getelementptr inbounds nuw i8, ptr %.0111.i, i64 4
%109 = icmp ult ptr %108, %103
%109 = icmp ult ptr %108, %100
br i1 %109, label %.lr.ph.i, label %Rtm_ObjAddFirst2.exit, !llvm.loop !53

110: ; preds = %85
Expand Down
111 changes: 54 additions & 57 deletions bench/abc/optimized/cecSatG3.ll
Original file line number Diff line number Diff line change
Expand Up @@ -10399,9 +10399,9 @@ define void @Cec5_ManExtend(ptr noundef readonly captures(none) %0, ptr noundef
%10 = getelementptr inbounds nuw i8, ptr %1, i64 280
br label %11

11: ; preds = %.lr.ph, %122
%12 = phi i32 [ %6, %.lr.ph ], [ %125, %122 ]
%13 = phi ptr [ %4, %.lr.ph ], [ %123, %122 ]
11: ; preds = %.lr.ph, %119
%12 = phi i32 [ %6, %.lr.ph ], [ %122, %119 ]
%13 = phi ptr [ %4, %.lr.ph ], [ %120, %119 ]
%14 = getelementptr inbounds nuw i8, ptr %13, i64 408
%15 = getelementptr inbounds nuw i8, ptr %13, i64 412
%16 = load i32, ptr %14, align 8, !tbaa !70
Expand Down Expand Up @@ -10505,35 +10505,32 @@ Vec_BitGrow.exit.i: ; preds = %57, %55
br label %Vec_BitPush.exit

60: ; preds = %50
%61 = lshr i32 %47, 4
%62 = and i32 %47, 15
%63 = icmp ne i32 %62, 0
%64 = zext i1 %63 to i32
%65 = add nuw nsw i32 %61, %64
%66 = getelementptr inbounds nuw i8, ptr %45, i64 8
%67 = load ptr, ptr %66, align 8, !tbaa !81
%.not11.i16.i = icmp eq ptr %67, null
%68 = shl nuw nsw i32 %65, 2
%69 = zext nneg i32 %68 to i64
br i1 %.not11.i16.i, label %72, label %70

70: ; preds = %60
%71 = tail call ptr @realloc(ptr noundef nonnull %67, i64 noundef %69) #28
br label %74
%61 = add nuw i32 %47, 15
%62 = lshr i32 %61, 4
%63 = getelementptr inbounds nuw i8, ptr %45, i64 8
%64 = load ptr, ptr %63, align 8, !tbaa !81
%.not11.i16.i = icmp eq ptr %64, null
%65 = shl nuw nsw i32 %62, 2
%66 = zext nneg i32 %65 to i64
br i1 %.not11.i16.i, label %69, label %67

67:; preds = %60
%68 = tail call ptr @realloc(ptr noundef nonnull %64, i64 noundef %66) #28
br label %71

72: ; preds = %60
%73 = tail call noalias ptr @malloc(i64 noundef %69) #25
%73 = tail call noalias ptr @malloc(i64 noundef %66) #25
br label %74

74: ; preds = %72, %70
%75 = phi ptr [ %71, %70 ], [ %73, %72 ]
store ptr %75, ptr %66, align 8, !tbaa !81
%76 = shl nuw nsw i32 %65, 5
74: ; preds = %72, %67
%75 = phi ptr [ %68, %67 ], [ %73, %69 ]
store ptr %75, ptr %63, align 8, !tbaa !81
%76 = shl nuw nsw i32 %62, 5
store i32 %76, ptr %45, align 8, !tbaa !79
br label %Vec_BitPush.exit

Vec_BitPush.exit: ; preds = %.Vec_BitGrow.exit17_crit_edge.i, %Vec_BitGrow.exit.i, %74
%77 = phi ptr [ %.pre.i7, %.Vec_BitGrow.exit17_crit_edge.i ], [ %75, %74 ], [ %59, %Vec_BitGrow.exit.i ]
%77 = phi ptr [ %.pre.i7, %.Vec_BitGrow.exit17_crit_edge.i ], [ %75, %71 ], [ %59, %Vec_BitGrow.exit.i ]
%78 = load i32, ptr %46, align 4, !tbaa !82
%79 = and i32 %78, 31
%80 = shl nuw i32 1, %79
Expand All @@ -10547,7 +10544,7 @@ Vec_BitPush.exit: ; preds = %.Vec_BitGrow.exit17
%87 = load i32, ptr %46, align 4, !tbaa !82
%88 = add nsw i32 %87, 1
store i32 %88, ptr %46, align 4, !tbaa !82
br i1 %.not, label %122, label %89
br i1 %.not, label %119, label %89

89: ; preds = %Vec_BitPush.exit
%90 = load ptr, ptr %10, align 8, !tbaa !219
Expand Down Expand Up @@ -10581,7 +10578,7 @@ Vec_BitPush.exit: ; preds = %.Vec_BitGrow.exit17
br label %Vec_IntGrow.exit.i13

Vec_IntGrow.exit.i13: ; preds = %102, %100
%104 = phi ptr [ %101, %100 ], [ %103, %102 ]
%104 = phi ptr [ %101, %97 ], [ %103, %99 ]
store ptr %104, ptr %98, align 8, !tbaa !19
store i32 16, ptr %90, align 8, !tbaa !70
br label %Vec_IntPush.exit14
Expand All @@ -10593,42 +10590,42 @@ Vec_IntGrow.exit.i13: ; preds = %102, %100
%.not9.i9.i11 = icmp eq ptr %108, null
%109 = zext nneg i32 %106 to i64
%110 = shl nuw nsw i64 %109, 2
br i1 %.not9.i9.i11, label %113, label %111

111: ; preds = %105
%112 = tail call ptr @realloc(ptr noundef nonnull %108, i64 noundef %110) #28
br label %115
br i1 %.not9.i9.i11, label %110, label %115

113: ; preds = %105
%114 = tail call noalias ptr @malloc(i64 noundef %110) #25
br label %115

115: ; preds = %113, %111
%116 = phi ptr [ %112, %111 ], [ %114, %113 ]
store ptr %116, ptr %107, align 8, !tbaa !19
store i32 %106, ptr %90, align 8, !tbaa !70
br label %Vec_IntPush.exit14
115: ; preds = %102
%109 = tail call ptr @realloc(ptr noundef nonnull %105, i64 noundef %107) #28
br label %112

Vec_IntPush.exit14: ; preds = %.Vec_IntGrow.exit10_crit_edge.i8, %Vec_IntGrow.exit.i13, %115
%117 = phi ptr [ %.pre.i10, %.Vec_IntGrow.exit10_crit_edge.i8 ], [ %116, %115 ], [ %104, %Vec_IntGrow.exit.i13 ]
%118 = load i32, ptr %91, align 4, !tbaa !16
%119 = add nsw i32 %118, 1
store i32 %119, ptr %91, align 4, !tbaa !16
%120 = sext i32 %118 to i64
%121 = getelementptr inbounds i32, ptr %117, i64 %120
store i32 -1, ptr %121, align 4, !tbaa !20
Vec_IntPush.exit14: ; preds = %105
%111 = tail call noalias ptr @malloc(i64 noundef %107) #25
br label %122

122: ; preds = %Vec_IntPush.exit14, %Vec_BitPush.exit
%123 = load ptr, ptr %3, align 8, !tbaa !133
%124 = getelementptr inbounds nuw i8, ptr %123, i64 412
%125 = load i32, ptr %124, align 4, !tbaa !218
%126 = getelementptr i8, ptr %123, i64 24
%.val = load i32, ptr %126, align 8, !tbaa !73
%127 = icmp slt i32 %125, %.val
br i1 %127, label %11, label %._crit_edge, !llvm.loop !224
122: ; preds = %Vec_IntPush.exit14, %108
%113 = phi ptr [ %109, %108 ], [ %111, %110 ]
store ptr %113, ptr %104, align 8, !tbaa !19
store i32 %103, ptr %87, align 8, !tbaa !70
br label %Vec_IntPush.exit14

._crit_edge: ; preds = %122, %2
._crit_edge: ; preds = %.Vec_IntGrow.exit10_crit_edge.i8, %Vec_IntGrow.exit.i13, %112
%114 = phi ptr [ %.pre.i10, %.Vec_IntGrow.exit10_crit_edge.i8 ], [ %113, %112 ], [ %101, %Vec_IntGrow.exit.i13 ]
%115 = load i32, ptr %88, align 4, !tbaa !16
%116 = add nsw i32 %115, 1
store i32 %116, ptr %88, align 4, !tbaa !16
%117 = sext i32 %115 to i64
%118 = getelementptr inbounds i32, ptr %114, i64 %117
store i32 -1, ptr %118, align 4, !tbaa !20
br label %119

119: ; preds = %Vec_IntPush.exit14, %Vec_BitPush.exit
%120 = load ptr, ptr %3, align 8, !tbaa !133
%121 = getelementptr inbounds nuw i8, ptr %120, i64 412
%122 = load i32, ptr %121, align 4, !tbaa !218
%123 = getelementptr i8, ptr %120, i64 24
%.val = load i32, ptr %123, align 8, !tbaa !73
%124 = icmp slt i32 %122, %.val
br i1 %124, label %11, label %._crit_edge, !llvm.loop !224

._crit_edge: ; preds = %119, %2
ret void
}

Expand Down
Loading