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
220 changes: 108 additions & 112 deletions bench/csmith/optimized/CVQualifiers.ll
Original file line number Diff line number Diff line change
Expand Up @@ -756,8 +756,8 @@ define dso_local noundef zeroext i1 @_ZNK12CVQualifiers13stricter_thanERKS_(ptr
%.not66 = icmp eq i64 %15, 0
br i1 %.not66, label %.loopexit, label %.lr.ph

.lr.ph: ; preds = %.preheader, %78
%.02958 = phi i64 [ %79, %78 ], [ 0, %.preheader ]
.lr.ph: ; preds = %.preheader, %75
%.02958 = phi i64 [ %76, %75 ], [ 0, %.preheader ]
%52 = sub nuw i64 %15, %.02958
%53 = icmp ugt i64 %52, 2
%54 = sdiv i64 %.02958, 64
Expand All @@ -767,7 +767,7 @@ define dso_local noundef zeroext i1 @_ZNK12CVQualifiers13stricter_thanERKS_(ptr
%.pre77 = and i64 %.02958, -9223372036854775745
%.pre79 = and i64 %.02958, 63
%.pre81 = shl nuw i64 1, %.pre79
br label %69
br label %66

55: ; preds = %.lr.ph
%56 = getelementptr inbounds i64, ptr %9, i64 %54
Expand All @@ -778,115 +778,111 @@ define dso_local noundef zeroext i1 @_ZNK12CVQualifiers13stricter_thanERKS_(ptr
%59 = and i64 %.02958, 63
%60 = shl nuw i64 1, %59
%61 = load i64, ptr %storemerge.i.i.i.i.i, align 8
%62 = and i64 %61, %60
%63 = icmp ne i64 %62, 0
%64 = getelementptr inbounds i64, ptr %20, i64 %54
%storemerge.i.i.i.i.i37 = getelementptr inbounds i8, ptr %64, i64 %storemerge.idx.i.i.i.i.i
%65 = load i64, ptr %storemerge.i.i.i.i.i37, align 8
%66 = and i64 %65, %60
%67 = icmp ne i64 %66, 0
%68 = xor i1 %63, %67
br i1 %68, label %.loopexit, label %69

69: ; preds = %.lr.ph._crit_edge, %55
%.pre-phi82 = phi i64 [ %.pre81, %.lr.ph._crit_edge ], [ %60, %55 ]
%.pre-phi78 = phi i64 [ %.pre77, %.lr.ph._crit_edge ], [ %57, %55 ]
%70 = getelementptr inbounds i64, ptr %20, i64 %54
%71 = icmp ugt i64 %.pre-phi78, -9223372036854775808
%storemerge.idx.i.i.i.i.i38 = select i1 %71, i64 -8, i64 0
%storemerge.i.i.i.i.i39 = getelementptr inbounds i8, ptr %70, i64 %storemerge.idx.i.i.i.i.i38
%72 = load i64, ptr %storemerge.i.i.i.i.i39, align 8
%73 = and i64 %72, %.pre-phi82
%.not55 = icmp eq i64 %73, 0
br i1 %.not55, label %78, label %74

74: ; preds = %69
%75 = getelementptr inbounds i64, ptr %9, i64 %54
%storemerge.i.i.i.i.i41 = getelementptr inbounds i8, ptr %75, i64 %storemerge.idx.i.i.i.i.i38
%76 = load i64, ptr %storemerge.i.i.i.i.i41, align 8
%77 = and i64 %76, %.pre-phi82
%.not56 = icmp eq i64 %77, 0
br i1 %.not56, label %.loopexit, label %78

78: ; preds = %69, %74
%79 = add nuw i64 %.02958, 1
%80 = icmp ult i64 %79, %15
br i1 %80, label %.lr.ph, label %._crit_edge, !llvm.loop !7

._crit_edge: ; preds = %78
%.not84 = icmp eq i64 %15, 1
br i1 %.not84, label %.lr.ph61.preheader, label %81

81: ; preds = %._crit_edge
%82 = load i64, ptr %34, align 8
%83 = load i64, ptr %45, align 8
%84 = xor i64 %83, %82
%85 = and i64 %84, 1
%.not52 = icmp eq i64 %85, 0
br i1 %.not52, label %.lr.ph61.preheader, label %.loopexit

.lr.ph61.preheader: ; preds = %81, %._crit_edge
br label %.lr.ph61

.lr.ph61: ; preds = %.lr.ph61.preheader, %112
%.159 = phi i64 [ %113, %112 ], [ 0, %.lr.ph61.preheader ]
%86 = sub nuw i64 %15, %.159
%87 = icmp ugt i64 %86, 2
%88 = sdiv i64 %.159, 64
br i1 %87, label %89, label %.lr.ph61._crit_edge

.lr.ph61._crit_edge: ; preds = %.lr.ph61
%.pre69 = and i64 %.159, -9223372036854775745
%.pre71 = and i64 %.159, 63
%.pre73 = shl nuw i64 1, %.pre71
br label %103

89: ; preds = %.lr.ph61
%90 = getelementptr inbounds i64, ptr %34, i64 %88
%91 = and i64 %.159, -9223372036854775745
%92 = icmp ugt i64 %91, -9223372036854775808
%storemerge.idx.i.i.i.i.i44 = select i1 %92, i64 -8, i64 0
%storemerge.i.i.i.i.i45 = getelementptr inbounds i8, ptr %90, i64 %storemerge.idx.i.i.i.i.i44
%93 = and i64 %.159, 63
%94 = shl nuw i64 1, %93
%95 = load i64, ptr %storemerge.i.i.i.i.i45, align 8
%96 = and i64 %95, %94
%97 = icmp ne i64 %96, 0
%98 = getelementptr inbounds i64, ptr %45, i64 %88
%storemerge.i.i.i.i.i47 = getelementptr inbounds i8, ptr %98, i64 %storemerge.idx.i.i.i.i.i44
%99 = load i64, ptr %storemerge.i.i.i.i.i47, align 8
%100 = and i64 %99, %94
%101 = icmp ne i64 %100, 0
%102 = xor i1 %97, %101
br i1 %102, label %.loopexit, label %103

103: ; preds = %.lr.ph61._crit_edge, %89
%.pre-phi74 = phi i64 [ %.pre73, %.lr.ph61._crit_edge ], [ %94, %89 ]
%.pre-phi70 = phi i64 [ %.pre69, %.lr.ph61._crit_edge ], [ %91, %89 ]
%104 = getelementptr inbounds i64, ptr %45, i64 %88
%105 = icmp ugt i64 %.pre-phi70, -9223372036854775808
%storemerge.idx.i.i.i.i.i48 = select i1 %105, i64 -8, i64 0
%storemerge.i.i.i.i.i49 = getelementptr inbounds i8, ptr %104, i64 %storemerge.idx.i.i.i.i.i48
%106 = load i64, ptr %storemerge.i.i.i.i.i49, align 8
%107 = and i64 %106, %.pre-phi74
%.not53 = icmp eq i64 %107, 0
br i1 %.not53, label %112, label %108

108: ; preds = %103
%109 = getelementptr inbounds i64, ptr %34, i64 %88
%storemerge.i.i.i.i.i51 = getelementptr inbounds i8, ptr %109, i64 %storemerge.idx.i.i.i.i.i48
%110 = load i64, ptr %storemerge.i.i.i.i.i51, align 8
%111 = and i64 %110, %.pre-phi74
%.not54 = icmp eq i64 %111, 0
br i1 %.not54, label %.loopexit, label %112

112: ; preds = %103, %108
%113 = add nuw i64 %.159, 1
%114 = icmp ult i64 %113, %15
br i1 %114, label %.lr.ph61, label %.loopexit, !llvm.loop !8

.loopexit: ; preds = %74, %55, %89, %108, %112, %.preheader, %81, %2, %27
%.0 = phi i1 [ false, %27 ], [ false, %2 ], [ false, %81 ], [ true, %.preheader ], [ false, %89 ], [ false, %108 ], [ true, %112 ], [ false, %55 ], [ false, %74 ]
%62 = getelementptr inbounds i64, ptr %20, i64 %54
%63 = getelementptr inbounds i8, ptr %62, i64 %storemerge.idx.i.i.i.i.i
%64 = load i64, ptr %63, align 8
%storemerge.i.i.i.i.i37 = xor i64 %63, %61
%65 = and i64 %storemerge.i.i.i.i.i37, %60
%66 = icmp eq i64 %65, 0
br i1 %.not56, label %66, label %.loopexit

66:; preds = %.lr.ph._crit_edge, %55
%.pre-phi84 = phi i64 [ %.pre83, %.lr.ph._crit_edge ], [ %60, %55 ]
%.pre-phi80 = phi i64 [ %.pre79, %.lr.ph._crit_edge ], [ %57, %55 ]
%.pre-phi82 = getelementptr inbounds i64, ptr %20, i64 %54
%.pre-phi78 = icmp ugt i64 %.pre-phi80, -9223372036854775808
%70 = select i1 %68, i64 -8, i64 0
%71 = getelementptr inbounds i8, ptr %.pre-phi82, i64 %70
%storemerge.idx.i.i.i.i.i38 = load i64, ptr %71, align 8
%storemerge.i.i.i.i.i39 = and i64 %storemerge.idx.i.i.i.i.i38, %.pre-phi84
%72 = icmp eq i64 %storemerge.i.i.i.i.i39, 0
br i1 %72, label %75, label %71

71:; preds = %66
%72 = getelementptr inbounds i64, ptr %9, i64 %54
%storemerge.i.i.i.i.i41 = getelementptr inbounds i8, ptr %72, i64 %70
%75 = load i64, ptr %storemerge.i.i.i.i.i41, align 8
%storemerge.i.i.i.i.i41 = and i64 %73, %.pre-phi84
%76 = icmp eq i64 %storemerge.i.i.i.i.i41, 0
br i1 %76, label %.loopexit, label %75

75:; preds = %66, %71
%76 = add nuw i64 %.02960, 1
%77 = icmp ult i64 %76, %15
br i1 %77, label %.lr.ph, label %._crit_edge, !llvm.loop !7

._crit_edge:; preds = %75
%.not86 = icmp eq i64 %15, 1
br i1 %.not86, label %.lr.ph63.preheader, label %78

78: ; preds = %._crit_edge
%79 = load i64, ptr %34, align 8
%80 = load i64, ptr %45, align 8
%82 = xor i64 %80, %79
%83 = and i64 %81, 1
%84 = icmp eq i64 %83, 0
br i1 %84, label %.lr.ph63.preheader, label %.loopexit

.lr.ph63.preheader:; preds = %78, %._crit_edge
br label %.lr.ph63

.lr.ph63:; preds = %.lr.ph63.preheader, %106
%.161 = phi i64 [ %107, %106 ], [ 0, %.lr.ph63.preheader ]
%83 = sub nuw i64 %15, %.161
%.159 = icmp ugt i64 %83, 2
%86 = sdiv i64 %.161, 64
br i1 %84, label %86, label %.lr.ph63._crit_edge

.lr.ph63._crit_edge:; preds = %.lr.ph63
%.pre71 = and i64 %.161, -9223372036854775745
%.pre73 = and i64 %.161, 63
%.pre69 = shl nuw i64 1, %.pre73
br label %97

86:; preds = %.lr.ph63
%87 = getelementptr inbounds i64, ptr %34, i64 %85
%88 = and i64 %.161, -9223372036854775745
%90 = icmp ugt i64 %88, -9223372036854775808
%91 = select i1 %89, i64 -8, i64 0
%92 = getelementptr inbounds i8, ptr %87, i64 %91
%storemerge.idx.i.i.i.i.i44 = and i64 %.161, 63
%storemerge.i.i.i.i.i45 = shl nuw i64 1, %storemerge.idx.i.i.i.i.i44
%93 = load i64, ptr %93, align 8
%94 = getelementptr inbounds i64, ptr %45, i64 %85
%95 = getelementptr inbounds i8, ptr %93, i64 %storemerge.i.i.i.i.i45
%96 = load i64, ptr %95, align 8
%97 = xor i64 %96, %92
%98 = and i64 %95, %91
%storemerge.i.i.i.i.i47 = icmp eq i64 %96, 0
br i1 %storemerge.i.i.i.i.i47, label %97, label %.loopexit

97:; preds = %.lr.ph63._crit_edge, %86
%102 = phi i64 [ %.pre75, %.lr.ph63._crit_edge ], [ %91, %86 ]
%.pre-phi72 = phi i64 [ %.pre71, %.lr.ph63._crit_edge ], [ %88, %86 ]
%98 = getelementptr inbounds i64, ptr %45, i64 %85
%99 = icmp ugt i64 %.pre-phi72, -9223372036854775808
%.pre-phi74 = select i1 %99, i64 -8, i64 0
%.pre-phi70 = getelementptr inbounds i8, ptr %98, i64 %.pre-phi74
%104 = load i64, ptr %.pre-phi70, align 8
%105 = and i64 %100, %.pre-phi76
%storemerge.idx.i.i.i.i.i48 = icmp eq i64 %105, 0
br i1 %storemerge.idx.i.i.i.i.i48, label %106, label %102

102: ; preds = %97
%.not53 = getelementptr inbounds i64, ptr %34, i64 %85
%storemerge.i.i.i.i.i51 = getelementptr inbounds i8, ptr %.not53, i64 %.pre-phi74
%104 = load i64, ptr %storemerge.i.i.i.i.i51, align 8
%105 = and i64 %104, %102
%109 = icmp eq i64 %105, 0
br i1 %109, label %.loopexit, label %106

106:; preds = %97, %102
%.not54 = add nuw i64 %.161, 1
%108 = icmp ult i64 %.not54, %15
br i1 %108, label %.lr.ph63, label %.loopexit, !llvm.loop !8

.loopexit:; preds = %71, %55, %86, %102, %106, %.preheader, %78, %2, %27
%114 = phi i1 [ false, %27 ], [ false, %2 ], [ false, %78 ], [ true, %.preheader ], [ false, %86 ], [ false, %102 ], [ true, %106 ], [ false, %55 ], [ false, %71 ]
ret i1 %.0
}

Expand Down
10 changes: 4 additions & 6 deletions bench/cvc5/optimized/logic_info.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1926,15 +1926,13 @@ for.body: ; preds = %do.end, %for.inc
%conv4.i.i.i.i.i = zext nneg i32 %8 to i64
%shl.i.i.i = shl nuw i64 1, %conv4.i.i.i.i.i
%9 = load i64, ptr %add.ptr.i.i.i.i.i, align 8
%and.i.i.i.i = and i64 %9, %shl.i.i.i
%tobool.i.i.i.i = icmp ne i64 %and.i.i.i.i, 0
%10 = load ptr, ptr %d_theories8, align 8
%add.ptr.i.i.i.i.i17 = getelementptr inbounds nuw i64, ptr %10, i64 %div.i.i.i.i.i35.zext
%11 = load i64, ptr %add.ptr.i.i.i.i.i17, align 8
%and.i.i.i.i23 = and i64 %11, %shl.i.i.i
%tobool.i.i.i.i24 = icmp ne i64 %and.i.i.i.i23, 0
%12 = xor i1 %tobool.i.i.i.i, %tobool.i.i.i.i24
br i1 %12, label %return, label %for.inc
%and.i.i.i.i23 = xor i64 %11, %9
%tobool.i.i.i.i24 = and i64 %and.i.i.i.i23, %shl.i.i.i
%12 = icmp eq i64 %tobool.i.i.i.i24, 0
br i1 %12, label %for.inc, label %return

for.inc: ; preds = %for.body
%call15 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN4cvc58internal6theoryppERNS1_8TheoryIdE(ptr noundef nonnull align 4 dereferenceable(4) %id)
Expand Down
64 changes: 31 additions & 33 deletions bench/llvm/optimized/RISCVAsmPrinter.ll
Original file line number Diff line number Diff line change
Expand Up @@ -348,27 +348,25 @@ define internal noundef zeroext i1 @_ZN12_GLOBAL__N_115RISCVAsmPrinter20runOnMac
%32 = zext nneg i32 %31 to i64
%33 = getelementptr inbounds nuw [5 x i64], ptr %27, i64 0, i64 %32
%34 = load i64, ptr %33, align 8, !tbaa !268
%35 = and i64 %30, %34
%36 = icmp ne i64 %35, 0
%37 = getelementptr inbounds nuw [5 x i64], ptr %19, i64 0, i64 %32
%38 = load i64, ptr %37, align 8, !tbaa !268
%39 = and i64 %30, %38
%40 = icmp ne i64 %39, 0
%41 = xor i1 %36, %40
br i1 %41, label %42, label %62

42: ; preds = %23
%43 = load ptr, ptr %.014.ptr23.i, align 16, !tbaa !269
%.not.i15.i = icmp eq ptr %43, null
br i1 %.not.i15.i, label %_ZN4llvm9StringRefC2EPKc.exit.i, label %44

44: ; preds = %42
%45 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %43) #17
%35 = getelementptr inbounds nuw [5 x i64], ptr %19, i64 0, i64 %32
%36 = load i64, ptr %35, align 8, !tbaa !268
%37 = xor i64 %36, %34
%38 = and i64 %37, %30
%39 = icmp eq i64 %38, 0
br i1 %.not21.i, label %62, label %39

39:; preds = %23
%40 = load ptr, ptr %.014.ptr24.i, align 16, !tbaa !269
%.not.i15.i = icmp eq ptr %40, null
br i1 %.not.i15.i, label %_ZN4llvm9StringRefC2EPKc.exit.i, label %41

41:; preds = %39
%42 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %40) #17
br label %_ZN4llvm9StringRefC2EPKc.exit.i

_ZN4llvm9StringRefC2EPKc.exit.i: ; preds = %44, %42
%46 = phi i64 [ %45, %44 ], [ 0, %42 ]
%47 = call noundef zeroext i1 @_ZN4llvm12RISCVISAInfo27isSupportedExtensionFeatureENS_9StringRefE(ptr %43, i64 %46) #17
_ZN4llvm9StringRefC2EPKc.exit.i: ; preds = %41, %39
%46 = phi i64 [ %42, %41 ], [ 0, %39 ]
%47 = call noundef zeroext i1 @_ZN4llvm12RISCVISAInfo27isSupportedExtensionFeatureENS_9StringRefE(ptr %40, i64 %46) #17
br i1 %47, label %48, label %62

48: ; preds = %_ZN4llvm9StringRefC2EPKc.exit.i
Expand All @@ -377,17 +375,17 @@ _ZN4llvm9StringRefC2EPKc.exit.i: ; preds = %44, %42
%50 = load i32, ptr %25, align 16, !tbaa !263
%51 = getelementptr inbounds nuw i8, ptr %49, i64 232
%52 = and i32 %50, 63
%50 = zext nneg i32 %49 to i64
%51 = shl nuw i64 1, %50
%52 = lshr i32 %47, 6
%53 = zext nneg i32 %52 to i64
%54 = shl nuw i64 1, %53
%55 = lshr i32 %50, 6
%56 = zext nneg i32 %55 to i64
%57 = getelementptr inbounds nuw [5 x i64], ptr %51, i64 0, i64 %56
%58 = load i64, ptr %57, align 8, !tbaa !268
%59 = and i64 %54, %58
%.not21.i = icmp eq i64 %59, 0
%60 = select i1 %.not21.i, i32 2, i32 1
store i32 %60, ptr %4, align 4, !tbaa !270
%61 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN4llvm15SmallVectorImplINS_18RISCVOptionArchArgEE12emplace_backIJRNS_22RISCVOptionArchArgTypeERKPKcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 8 dereferenceable(8) %.014.ptr23.i)
%54 = getelementptr inbounds nuw [5 x i64], ptr %48, i64 0, i64 %53
%55 = load i64, ptr %54, align 8, !tbaa !268
%56 = and i64 %51, %55
%57 = icmp eq i64 %56, 0
%58 = select i1 %57, i32 2, i32 1
store i32 %57, ptr %4, align 4, !tbaa !270
%.not21.i = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN4llvm15SmallVectorImplINS_18RISCVOptionArchArgEE12emplace_backIJRNS_22RISCVOptionArchArgTypeERKPKcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 8 dereferenceable(8) %.014.ptr24.i)
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #17
br label %62

Expand All @@ -400,14 +398,14 @@ _ZN4llvm9StringRefC2EPKc.exit.i: ; preds = %44, %42
%64 = load ptr, ptr %11, align 8, !tbaa !13
%65 = getelementptr inbounds nuw i8, ptr %64, i64 96
%66 = load ptr, ptr %65, align 8
call void %66(ptr noundef nonnull align 8 dereferenceable(22) %11) #17
call void %63(ptr noundef nonnull align 8 dereferenceable(22) %11) #17
%67 = load ptr, ptr %3, align 8, !tbaa !257
%68 = load i32, ptr %13, align 8, !tbaa !258
%69 = zext i32 %68 to i64
%70 = load ptr, ptr %11, align 8, !tbaa !13
%71 = getelementptr inbounds nuw i8, ptr %70, i64 160
%72 = load ptr, ptr %71, align 8
call void %72(ptr noundef nonnull align 8 dereferenceable(22) %11, ptr %67, i64 %69) #17
call void %69(ptr noundef nonnull align 8 dereferenceable(22) %11, ptr %67, i64 %69) #17
%.pr.i = load i32, ptr %13, align 8, !tbaa !258
%73 = load ptr, ptr %3, align 8, !tbaa !257
%.not4.i.i.i = icmp eq i32 %.pr.i, 0
Expand Down Expand Up @@ -462,7 +460,7 @@ _ZN12_GLOBAL__N_115RISCVAsmPrinter23emitDirectiveOptionArchEv.exit: ; preds = %_
%89 = load ptr, ptr %0, align 8, !tbaa !13
%90 = getelementptr inbounds nuw i8, ptr %89, i64 184
%91 = load ptr, ptr %90, align 8
call void %91(ptr noundef nonnull align 8 dereferenceable(777) %0, ptr noundef nonnull align 8 dereferenceable(1065) %1) #17
call void %88(ptr noundef nonnull align 8 dereferenceable(777) %0, ptr noundef nonnull align 8 dereferenceable(1065) %1) #17
call void @_ZN4llvm10AsmPrinter16emitFunctionBodyEv(ptr noundef nonnull align 8 dereferenceable(777) %0) #17
call void @_ZN4llvm10AsmPrinter13emitXRayTableEv(ptr noundef nonnull align 8 dereferenceable(777) %0) #17
br i1 %.not.i.i.not, label %96, label %92
Expand All @@ -471,7 +469,7 @@ _ZN12_GLOBAL__N_115RISCVAsmPrinter23emitDirectiveOptionArchEv.exit: ; preds = %_
%93 = load ptr, ptr %11, align 8, !tbaa !13
%94 = getelementptr inbounds nuw i8, ptr %93, i64 104
%95 = load ptr, ptr %94, align 8
call void %95(ptr noundef nonnull align 8 dereferenceable(22) %11) #17
call void %92(ptr noundef nonnull align 8 dereferenceable(22) %11) #17
br label %96

96: ; preds = %92, %_ZN12_GLOBAL__N_115RISCVAsmPrinter23emitDirectiveOptionArchEv.exit
Expand Down
Loading