diff --git a/bench/abc/optimized/abcUtil.ll b/bench/abc/optimized/abcUtil.ll index de67cde52da..a58ea206aac 100644 --- a/bench/abc/optimized/abcUtil.ll +++ b/bench/abc/optimized/abcUtil.ll @@ -7752,7 +7752,7 @@ Vec_PtrFree.exit: ; preds = %.lr.ph, %21 %60 = lshr i32 %59, 4 %61 = and i32 %60, 1 %62 = xor i32 %61, 1 - %spec.select = add i32 %62, %.0144 + %spec.select = add nuw nsw i32 %62, %.0144 %63 = or i32 %59, 16 store i32 %63, ptr %58, align 4 %64 = getelementptr inbounds nuw i8, ptr %.179145, i64 64 diff --git a/bench/abseil-cpp/optimized/container_test.ll b/bench/abseil-cpp/optimized/container_test.ll index f047eb4bef9..ce1386f465f 100644 --- a/bench/abseil-cpp/optimized/container_test.ll +++ b/bench/abseil-cpp/optimized/container_test.ll @@ -83695,7 +83695,7 @@ entry: for.body.i.i.i.i: ; preds = %entry, %if.end.i.i.i.i %__parent.011.i.i.i.i = phi i64 [ %spec.select.i.i.i.i, %if.end.i.i.i.i ], [ 0, %entry ] %__child.010.i.i.i.i = phi i64 [ %inc11.i.i.i.i, %if.end.i.i.i.i ], [ 1, %entry ] - %add.ptr.i.i.i.i.i = getelementptr inbounds i32, ptr %call5.i.i.i.i2.i, i64 %__parent.011.i.i.i.i + %add.ptr.i.i.i.i.i = getelementptr inbounds nuw i32, ptr %call5.i.i.i.i2.i, i64 %__parent.011.i.i.i.i %add.ptr.i7.i.i.i.i = getelementptr inbounds nuw i32, ptr %call5.i.i.i.i2.i, i64 %__child.010.i.i.i.i %0 = load i32, ptr %add.ptr.i.i.i.i.i, align 4 %1 = load i32, ptr %add.ptr.i7.i.i.i.i, align 4 @@ -83705,7 +83705,7 @@ for.body.i.i.i.i: ; preds = %entry, %if.end.i.i. if.end.i.i.i.i: ; preds = %for.body.i.i.i.i %and.i.i.i.i = and i64 %__child.010.i.i.i.i, 1 %2 = xor i64 %and.i.i.i.i, 1 - %spec.select.i.i.i.i = add i64 %2, %__parent.011.i.i.i.i + %spec.select.i.i.i.i = add nuw nsw i64 %2, %__parent.011.i.i.i.i %inc11.i.i.i.i = add nuw nsw i64 %__child.010.i.i.i.i, 1 %exitcond.not.i.i.i.i = icmp eq i64 %inc11.i.i.i.i, 3 br i1 %exitcond.not.i.i.i.i, label %invoke.cont6.thread, label %for.body.i.i.i.i, !llvm.loop !1876 @@ -83838,7 +83838,7 @@ invoke.cont23: ; preds = %_ZN7testing15Assert for.body.i.i.i.i43: ; preds = %invoke.cont23, %if.end.i.i.i.i49 %__parent.011.i.i.i.i44 = phi i64 [ %spec.select.i.i.i.i51, %if.end.i.i.i.i49 ], [ 0, %invoke.cont23 ] %__child.010.i.i.i.i45 = phi i64 [ %inc11.i.i.i.i52, %if.end.i.i.i.i49 ], [ 1, %invoke.cont23 ] - %add.ptr.i.i.i.i.i46 = getelementptr inbounds i32, ptr %14, i64 %__parent.011.i.i.i.i44 + %add.ptr.i.i.i.i.i46 = getelementptr inbounds nuw i32, ptr %14, i64 %__parent.011.i.i.i.i44 %add.ptr.i7.i.i.i.i47 = getelementptr inbounds nuw i32, ptr %14, i64 %__child.010.i.i.i.i45 %16 = load i32, ptr %add.ptr.i.i.i.i.i46, align 4 %17 = load i32, ptr %add.ptr.i7.i.i.i.i47, align 4 @@ -83848,7 +83848,7 @@ for.body.i.i.i.i43: ; preds = %invoke.cont23, %if. if.end.i.i.i.i49: ; preds = %for.body.i.i.i.i43 %and.i.i.i.i50 = and i64 %__child.010.i.i.i.i45, 1 %18 = xor i64 %and.i.i.i.i50, 1 - %spec.select.i.i.i.i51 = add i64 %18, %__parent.011.i.i.i.i44 + %spec.select.i.i.i.i51 = add nuw nsw i64 %18, %__parent.011.i.i.i.i44 %inc11.i.i.i.i52 = add nuw nsw i64 %__child.010.i.i.i.i45, 1 %exitcond.not.i.i.i.i53 = icmp eq i64 %inc11.i.i.i.i52, %sub.ptr.div.i.i.i.i.i.i38 br i1 %exitcond.not.i.i.i.i53, label %invoke.cont26, label %for.body.i.i.i.i43, !llvm.loop !1876 @@ -84040,7 +84040,7 @@ invoke.cont55.thread: ; preds = %invoke.cont51 for.body.i.i.i: ; preds = %invoke.cont51, %if.end.i.i.i %__parent.011.i.i.i = phi i64 [ %spec.select.i.i.i, %if.end.i.i.i ], [ 0, %invoke.cont51 ] %__child.010.i.i.i = phi i64 [ %inc11.i.i.i, %if.end.i.i.i ], [ 1, %invoke.cont51 ] - %add.ptr.i.i.i.i82 = getelementptr inbounds i32, ptr %33, i64 %__parent.011.i.i.i + %add.ptr.i.i.i.i82 = getelementptr inbounds nuw i32, ptr %33, i64 %__parent.011.i.i.i %add.ptr.i7.i.i.i = getelementptr inbounds nuw i32, ptr %33, i64 %__child.010.i.i.i %34 = load i32, ptr %add.ptr.i.i.i.i82, align 4 %35 = load i32, ptr %add.ptr.i7.i.i.i, align 4 @@ -84050,7 +84050,7 @@ for.body.i.i.i: ; preds = %invoke.cont51, %if. if.end.i.i.i: ; preds = %for.body.i.i.i %and.i.i.i = and i64 %__child.010.i.i.i, 1 %36 = xor i64 %and.i.i.i, 1 - %spec.select.i.i.i = add i64 %36, %__parent.011.i.i.i + %spec.select.i.i.i = add nuw nsw i64 %36, %__parent.011.i.i.i %inc11.i.i.i = add nuw nsw i64 %__child.010.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %inc11.i.i.i, %sub.ptr.div.i.i.i.i.i80 br i1 %exitcond.not.i.i.i, label %invoke.cont55, label %for.body.i.i.i, !llvm.loop !1877 @@ -84720,7 +84720,7 @@ _ZN7testing15AssertionResultD2Ev.exit209: ; preds = %if.end150, %_ZNKSt1 for.body.i.i.i.i219: ; preds = %_ZN7testing15AssertionResultD2Ev.exit209, %if.end.i.i.i.i225 %__parent.011.i.i.i.i220 = phi i64 [ %spec.select.i.i.i.i227, %if.end.i.i.i.i225 ], [ 0, %_ZN7testing15AssertionResultD2Ev.exit209 ] %__child.010.i.i.i.i221 = phi i64 [ %inc11.i.i.i.i228, %if.end.i.i.i.i225 ], [ 1, %_ZN7testing15AssertionResultD2Ev.exit209 ] - %add.ptr.i.i.i.i.i222 = getelementptr inbounds i32, ptr %107, i64 %__parent.011.i.i.i.i220 + %add.ptr.i.i.i.i.i222 = getelementptr inbounds nuw i32, ptr %107, i64 %__parent.011.i.i.i.i220 %add.ptr.i7.i.i.i.i223 = getelementptr inbounds nuw i32, ptr %107, i64 %__child.010.i.i.i.i221 %109 = load i32, ptr %add.ptr.i.i.i.i.i222, align 4 %110 = load i32, ptr %add.ptr.i7.i.i.i.i223, align 4 @@ -84730,7 +84730,7 @@ for.body.i.i.i.i219: ; preds = %_ZN7testing15Assert if.end.i.i.i.i225: ; preds = %for.body.i.i.i.i219 %and.i.i.i.i226 = and i64 %__child.010.i.i.i.i221, 1 %111 = xor i64 %and.i.i.i.i226, 1 - %spec.select.i.i.i.i227 = add i64 %111, %__parent.011.i.i.i.i220 + %spec.select.i.i.i.i227 = add nuw nsw i64 %111, %__parent.011.i.i.i.i220 %inc11.i.i.i.i228 = add nuw nsw i64 %__child.010.i.i.i.i221, 1 %exitcond.not.i.i.i.i229 = icmp eq i64 %inc11.i.i.i.i228, %sub.ptr.div.i.i.i.i.i.i214 br i1 %exitcond.not.i.i.i.i229, label %invoke.cont154, label %for.body.i.i.i.i219, !llvm.loop !1876 @@ -84965,7 +84965,7 @@ entry: for.body.i.i.i: ; preds = %entry, %if.end.i.i.i %__parent.011.i.i.i = phi i64 [ %spec.select.i.i.i, %if.end.i.i.i ], [ 0, %entry ] %__child.010.i.i.i = phi i64 [ %inc11.i.i.i, %if.end.i.i.i ], [ 1, %entry ] - %add.ptr.i.i.i.i = getelementptr inbounds i32, ptr %call5.i.i.i.i2.i, i64 %__parent.011.i.i.i + %add.ptr.i.i.i.i = getelementptr inbounds nuw i32, ptr %call5.i.i.i.i2.i, i64 %__parent.011.i.i.i %add.ptr.i7.i.i.i = getelementptr inbounds nuw i32, ptr %call5.i.i.i.i2.i, i64 %__child.010.i.i.i %0 = load i32, ptr %add.ptr.i.i.i.i, align 4 %1 = load i32, ptr %add.ptr.i7.i.i.i, align 4 @@ -84975,7 +84975,7 @@ for.body.i.i.i: ; preds = %entry, %if.end.i.i. if.end.i.i.i: ; preds = %for.body.i.i.i %and.i.i.i = and i64 %__child.010.i.i.i, 1 %2 = xor i64 %and.i.i.i, 1 - %spec.select.i.i.i = add i64 %2, %__parent.011.i.i.i + %spec.select.i.i.i = add nuw nsw i64 %2, %__parent.011.i.i.i %inc11.i.i.i = add nuw nsw i64 %__child.010.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %inc11.i.i.i, 3 br i1 %exitcond.not.i.i.i, label %invoke.cont7.thread, label %for.body.i.i.i, !llvm.loop !1888 @@ -85108,7 +85108,7 @@ invoke.cont25: ; preds = %_ZN7testing15Assert for.body.i.i.i42: ; preds = %invoke.cont25, %if.end.i.i.i48 %__parent.011.i.i.i43 = phi i64 [ %spec.select.i.i.i50, %if.end.i.i.i48 ], [ 0, %invoke.cont25 ] %__child.010.i.i.i44 = phi i64 [ %inc11.i.i.i51, %if.end.i.i.i48 ], [ 1, %invoke.cont25 ] - %add.ptr.i.i.i.i45 = getelementptr inbounds i32, ptr %14, i64 %__parent.011.i.i.i43 + %add.ptr.i.i.i.i45 = getelementptr inbounds nuw i32, ptr %14, i64 %__parent.011.i.i.i43 %add.ptr.i7.i.i.i46 = getelementptr inbounds nuw i32, ptr %14, i64 %__child.010.i.i.i44 %16 = load i32, ptr %add.ptr.i.i.i.i45, align 4 %17 = load i32, ptr %add.ptr.i7.i.i.i46, align 4 @@ -85118,7 +85118,7 @@ for.body.i.i.i42: ; preds = %invoke.cont25, %if. if.end.i.i.i48: ; preds = %for.body.i.i.i42 %and.i.i.i49 = and i64 %__child.010.i.i.i44, 1 %18 = xor i64 %and.i.i.i49, 1 - %spec.select.i.i.i50 = add i64 %18, %__parent.011.i.i.i43 + %spec.select.i.i.i50 = add nuw nsw i64 %18, %__parent.011.i.i.i43 %inc11.i.i.i51 = add nuw nsw i64 %__child.010.i.i.i44, 1 %exitcond.not.i.i.i52 = icmp eq i64 %inc11.i.i.i51, %sub.ptr.div.i.i.i.i.i38 br i1 %exitcond.not.i.i.i52, label %invoke.cont29.thread, label %for.body.i.i.i42, !llvm.loop !1888 @@ -85315,7 +85315,7 @@ invoke.cont59.thread: ; preds = %invoke.cont54 for.body.i.i.i87: ; preds = %invoke.cont54, %if.end.i.i.i93 %__parent.011.i.i.i88 = phi i64 [ %spec.select.i.i.i95, %if.end.i.i.i93 ], [ 0, %invoke.cont54 ] %__child.010.i.i.i89 = phi i64 [ %inc11.i.i.i96, %if.end.i.i.i93 ], [ 1, %invoke.cont54 ] - %add.ptr.i.i.i.i90 = getelementptr inbounds i32, ptr %33, i64 %__parent.011.i.i.i88 + %add.ptr.i.i.i.i90 = getelementptr inbounds nuw i32, ptr %33, i64 %__parent.011.i.i.i88 %add.ptr.i7.i.i.i91 = getelementptr inbounds nuw i32, ptr %33, i64 %__child.010.i.i.i89 %34 = load i32, ptr %add.ptr.i.i.i.i90, align 4 %35 = load i32, ptr %add.ptr.i7.i.i.i91, align 4 @@ -85325,7 +85325,7 @@ for.body.i.i.i87: ; preds = %invoke.cont54, %if. if.end.i.i.i93: ; preds = %for.body.i.i.i87 %and.i.i.i94 = and i64 %__child.010.i.i.i89, 1 %36 = xor i64 %and.i.i.i94, 1 - %spec.select.i.i.i95 = add i64 %36, %__parent.011.i.i.i88 + %spec.select.i.i.i95 = add nuw nsw i64 %36, %__parent.011.i.i.i88 %inc11.i.i.i96 = add nuw nsw i64 %__child.010.i.i.i89, 1 %exitcond.not.i.i.i97 = icmp eq i64 %inc11.i.i.i96, %sub.ptr.div.i.i.i.i.i83 br i1 %exitcond.not.i.i.i97, label %invoke.cont59, label %for.body.i.i.i87, !llvm.loop !1889 @@ -85995,7 +85995,7 @@ _ZN7testing15AssertionResultD2Ev.exit220: ; preds = %if.end158, %_ZNKSt1 for.body.i.i.i229: ; preds = %_ZN7testing15AssertionResultD2Ev.exit220, %if.end.i.i.i235 %__parent.011.i.i.i230 = phi i64 [ %spec.select.i.i.i237, %if.end.i.i.i235 ], [ 0, %_ZN7testing15AssertionResultD2Ev.exit220 ] %__child.010.i.i.i231 = phi i64 [ %inc11.i.i.i238, %if.end.i.i.i235 ], [ 1, %_ZN7testing15AssertionResultD2Ev.exit220 ] - %add.ptr.i.i.i.i232 = getelementptr inbounds i32, ptr %107, i64 %__parent.011.i.i.i230 + %add.ptr.i.i.i.i232 = getelementptr inbounds nuw i32, ptr %107, i64 %__parent.011.i.i.i230 %add.ptr.i7.i.i.i233 = getelementptr inbounds nuw i32, ptr %107, i64 %__child.010.i.i.i231 %109 = load i32, ptr %add.ptr.i.i.i.i232, align 4 %110 = load i32, ptr %add.ptr.i7.i.i.i233, align 4 @@ -86005,7 +86005,7 @@ for.body.i.i.i229: ; preds = %_ZN7testing15Assert if.end.i.i.i235: ; preds = %for.body.i.i.i229 %and.i.i.i236 = and i64 %__child.010.i.i.i231, 1 %111 = xor i64 %and.i.i.i236, 1 - %spec.select.i.i.i237 = add i64 %111, %__parent.011.i.i.i230 + %spec.select.i.i.i237 = add nuw nsw i64 %111, %__parent.011.i.i.i230 %inc11.i.i.i238 = add nuw nsw i64 %__child.010.i.i.i231, 1 %exitcond.not.i.i.i239 = icmp eq i64 %inc11.i.i.i238, %sub.ptr.div.i.i.i.i.i225 br i1 %exitcond.not.i.i.i239, label %invoke.cont163.thread, label %for.body.i.i.i229, !llvm.loop !1888 diff --git a/bench/freetype/optimized/autofit.ll b/bench/freetype/optimized/autofit.ll index 780d86992a2..5ad26b24757 100644 --- a/bench/freetype/optimized/autofit.ll +++ b/bench/freetype/optimized/autofit.ll @@ -7459,10 +7459,10 @@ select.unfold241.i: ; preds = %._crit_edge.thread. %312 = load i8, ptr %.2168.i, align 8, !tbaa !350 %313 = and i8 %312, 1 %314 = zext nneg i8 %313 to i32 - %.2163.i = add i32 %.1162.i, %314 + %.2163.i = add nuw nsw i32 %.1162.i, %314 %315 = xor i8 %313, 1 %316 = zext nneg i8 %315 to i32 - %.2160.i = add i32 %.1159.i, %316 + %.2160.i = add nuw nsw i32 %.1159.i, %316 %317 = getelementptr inbounds nuw i8, ptr %.2168.i, i64 40 %318 = load ptr, ptr %317, align 8, !tbaa !365 %.not215.i = icmp eq ptr %318, null @@ -10037,10 +10037,10 @@ select.unfold.i: ; preds = %._crit_edge.i %166 = load i8, ptr %.3187.i, align 8, !tbaa !350 %167 = and i8 %166, 1 %168 = zext nneg i8 %167 to i32 - %.1176.i = add i32 %.0175.i, %168 + %.1176.i = add nuw nsw i32 %.0175.i, %168 %169 = xor i8 %167, 1 %170 = zext nneg i8 %169 to i32 - %.1174.i = add i32 %.0173.i, %170 + %.1174.i = add nuw nsw i32 %.0173.i, %170 %171 = getelementptr inbounds nuw i8, ptr %.3187.i, i64 40 %172 = load ptr, ptr %171, align 8, !tbaa !365 %.not222.i = icmp eq ptr %172, null @@ -10132,8 +10132,8 @@ select.unfold.i: ; preds = %._crit_edge.i 215: ; preds = %212 %216 = getelementptr inbounds nuw i8, ptr %.1178285.i, i64 24 - %217 = icmp sgt i32 %.1176.i, 0 - %.not228.i = icmp sge i32 %.1176.i, %.1174.i + %217 = icmp ne i32 %.1176.i, 0 + %.not228.i = icmp samesign uge i32 %.1176.i, %.1174.i %or.cond242.not.i = select i1 %217, i1 %.not228.i, i1 false %spec.store.select244.i = zext i1 %or.cond242.not.i to i8 store i8 %spec.store.select244.i, ptr %216, align 8 diff --git a/bench/gromacs/optimized/evaluate.ll b/bench/gromacs/optimized/evaluate.ll index 3b0568bfa61..0e50da9a563 100644 --- a/bench/gromacs/optimized/evaluate.ll +++ b/bench/gromacs/optimized/evaluate.ll @@ -3368,8 +3368,8 @@ define void @_Z28_gmx_sel_evaluate_arithmeticP18gmx_sel_evaluate_tRKSt10shared_p %.05470.us = phi float [ %.155.us, %60 ], [ 0.000000e+00, %.lr.ph ] %42 = getelementptr inbounds nuw i8, ptr %41, i64 16 %43 = load ptr, ptr %42, align 8 - %44 = sext i32 %.04973.us to i64 - %45 = getelementptr inbounds float, ptr %43, i64 %44 + %44 = zext nneg i32 %.04973.us to i64 + %45 = getelementptr inbounds nuw float, ptr %43, i64 %44 %46 = load float, ptr %45, align 4 %47 = load ptr, ptr %1, align 8 %48 = getelementptr inbounds nuw i8, ptr %47, i64 48 @@ -3417,7 +3417,7 @@ define void @_Z28_gmx_sel_evaluate_arithmeticP18gmx_sel_evaluate_tRKSt10shared_p %67 = lshr i32 %66, 1 %68 = and i32 %67, 1 %69 = xor i32 %68, 1 - %spec.select.us = add i32 %69, %.04973.us + %spec.select.us = add nuw nsw i32 %69, %.04973.us %indvars.iv.next78 = add nuw nsw i64 %indvars.iv77, 1 %exitcond81.not = icmp eq i64 %indvars.iv.next78, %wide.trip.count80 br i1 %exitcond81.not, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !19 @@ -3431,13 +3431,13 @@ define void @_Z28_gmx_sel_evaluate_arithmeticP18gmx_sel_evaluate_tRKSt10shared_p %.05470 = phi float [ 0.000000e+00, %.lr.ph.split.preheader ], [ %.155, %97 ] %72 = getelementptr inbounds nuw i8, ptr %71, i64 16 %73 = load ptr, ptr %72, align 8 - %74 = sext i32 %.04973 to i64 - %75 = getelementptr inbounds float, ptr %73, i64 %74 + %74 = zext nneg i32 %.04973 to i64 + %75 = getelementptr inbounds nuw float, ptr %73, i64 %74 %76 = load float, ptr %75, align 4 %77 = getelementptr inbounds nuw i8, ptr %70, i64 16 %78 = load ptr, ptr %77, align 8 - %79 = sext i32 %.05072 to i64 - %80 = getelementptr inbounds float, ptr %78, i64 %79 + %79 = zext nneg i32 %.05072 to i64 + %80 = getelementptr inbounds nuw float, ptr %78, i64 %79 %81 = load float, ptr %80, align 4 %82 = load ptr, ptr %1, align 8 %83 = getelementptr inbounds nuw i8, ptr %82, i64 48 @@ -3489,14 +3489,14 @@ define void @_Z28_gmx_sel_evaluate_arithmeticP18gmx_sel_evaluate_tRKSt10shared_p %105 = lshr i32 %104, 1 %106 = and i32 %105, 1 %107 = xor i32 %106, 1 - %spec.select = add i32 %107, %.04973 + %spec.select = add nuw nsw i32 %107, %.04973 %108 = load ptr, ptr %9, align 8 %109 = getelementptr inbounds nuw i8, ptr %108, i64 40 %110 = load i32, ptr %109, align 8 %111 = lshr i32 %110, 1 %112 = and i32 %111, 1 %113 = xor i32 %112, 1 - %spec.select60 = add i32 %113, %.05072 + %spec.select60 = add nuw nsw i32 %113, %.05072 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count80 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split, !llvm.loop !19 diff --git a/bench/gromacs/optimized/gmx_xpm2ps.ll b/bench/gromacs/optimized/gmx_xpm2ps.ll index 1d0b635c7d6..d016ffbfba9 100644 --- a/bench/gromacs/optimized/gmx_xpm2ps.ll +++ b/bench/gromacs/optimized/gmx_xpm2ps.ll @@ -4802,7 +4802,7 @@ _ZSt8_DestroyIP9t_inpfileS0_EvT_S2_RSaIT0_E.exit.i90.i: ; preds = %_ZSt8_Destroy %328 = and i32 %327, 1 %329 = getelementptr inbounds nuw i8, ptr %1, i64 4 %330 = load i32, ptr %329, align 4 - %331 = add i32 %330, %328 + %331 = add nsw i32 %330, %328 %332 = getelementptr inbounds nuw i8, ptr %1, i64 152 %333 = load ptr, ptr %332, align 8 %334 = load float, ptr %182, align 4 @@ -4831,7 +4831,7 @@ _ZSt8_DestroyIP9t_inpfileS0_EvT_S2_RSaIT0_E.exit.i90.i: ; preds = %_ZSt8_Destroy %347 = load i32, ptr %346, align 8 %348 = lshr i32 %345, 1 %349 = and i32 %348, 1 - %350 = add i32 %347, %349 + %350 = add nsw i32 %347, %349 %351 = getelementptr inbounds nuw i8, ptr %1, i64 176 %352 = load ptr, ptr %351, align 8 %353 = load float, ptr %230, align 4 @@ -5425,14 +5425,14 @@ _ZL10box_dh_topbP7t_psrec.exit.i252: ; preds = %629, %625 %.not180.i = icmp eq i32 %642, 0 %643 = getelementptr inbounds nuw i8, ptr %.sroa.0.0297.i, i64 4 %644 = load i32, ptr %643, align 4 - %.0172.i = add i32 %644, %642 + %.0172.i = add nsw i32 %644, %642 %.0167.i = select i1 %.not180.i, float 0x3FE3333340000000, float 0x3FB99999A0000000 %645 = and i32 %641, 2 %.not181.i = icmp eq i32 %645, 0 %646 = getelementptr inbounds nuw i8, ptr %.sroa.0.0297.i, i64 8 %647 = load i32, ptr %646, align 8 %648 = lshr exact i32 %645, 1 - %.0173.i = add i32 %647, %648 + %.0173.i = add nsw i32 %647, %648 %.0168.i = select i1 %.not181.i, float 0x3FE3333340000000, float 0x3FB99999A0000000 %649 = sext i32 %.0172.i to i64 %650 = invoke noundef ptr @_Z11save_callocPKcS0_imm(ptr noundef nonnull @.str.184, ptr noundef nonnull @.str.95, i32 noundef 403, i64 noundef range(i64 -2147483648, 2147483648) %649, i64 noundef 8) diff --git a/bench/gromacs/optimized/trajectory.ll b/bench/gromacs/optimized/trajectory.ll index 7a79508bf7c..0327935f640 100644 --- a/bench/gromacs/optimized/trajectory.ll +++ b/bench/gromacs/optimized/trajectory.ll @@ -533,15 +533,15 @@ define internal void @_ZN3gmx15analysismodules12_GLOBAL__N_110Trajectory15option %9 = load i8, ptr %.057.i.i.ptr, align 1 %10 = and i8 %9, 1 %11 = zext nneg i8 %10 to i64 - %spec.select.i.i = add i64 %.08.i.i, %11 + %spec.select.i.i = add nuw nsw i64 %.08.i.i, %11 %.057.i.i.add = add nuw nsw i64 %.057.i.i.idx, 1 %.not.i.i = icmp eq i64 %.057.i.i.add, 144 br i1 %.not.i.i, label %_ZSt5countIPbbENSt15iterator_traitsIT_E15difference_typeES2_S2_RKT0_.exit, label %8, !llvm.loop !5 _ZSt5countIPbbENSt15iterator_traitsIT_E15difference_typeES2_S2_RKT0_.exit: ; preds = %8 %.ptr9 = getelementptr inbounds nuw i8, ptr %0, i64 140 - %12 = icmp sgt i64 %spec.select.i.i, 0 - br i1 %12, label %.preheader, label %.loopexit + %12 = icmp eq i64 %spec.select.i.i, 0 + br i1 %12, label %.loopexit, label %.preheader .preheader: ; preds = %_ZSt5countIPbbENSt15iterator_traitsIT_E15difference_typeES2_S2_RKT0_.exit %13 = getelementptr inbounds nuw i8, ptr %0, i64 136 diff --git a/bench/hdf5/optimized/H5FDmulti.ll b/bench/hdf5/optimized/H5FDmulti.ll index c468aed9995..4754083d172 100644 --- a/bench/hdf5/optimized/H5FDmulti.ll +++ b/bench/hdf5/optimized/H5FDmulti.ll @@ -3001,7 +3001,7 @@ define internal range(i32 -1, 1) i32 @H5FD_multi_flush(ptr noundef readonly capt %22 = load ptr, ptr %10, align 8 %23 = call i32 @H5FDflush(ptr noundef %22, i64 noundef %1, i1 noundef zeroext %2) #16 %24 = lshr i32 %23, 31 - %spec.select = add i32 %24, %.017 + %spec.select = add nsw i32 %24, %.017 %25 = load i32, ptr %4, align 4 %.not15 = icmp eq i32 %25, 0 %26 = load ptr, ptr %5, align 8 @@ -3078,7 +3078,7 @@ define internal range(i32 -1, 1) i32 @H5FD_multi_truncate(ptr noundef readonly c %22 = load ptr, ptr %10, align 8 %23 = call i32 @H5FDtruncate(ptr noundef %22, i64 noundef %1, i1 noundef zeroext %2) #16 %24 = lshr i32 %23, 31 - %spec.select = add i32 %24, %.017 + %spec.select = add nsw i32 %24, %.017 %25 = load i32, ptr %4, align 4 %.not15 = icmp eq i32 %25, 0 %26 = load ptr, ptr %5, align 8 @@ -3189,9 +3189,8 @@ define internal range(i32 -1, 1) i32 @H5FD_multi_lock(ptr noundef readonly captu %indvars.iv.next44 = add nuw nsw i32 %indvars.iv43, 1 br i1 %exitcond, label %.thread30, label %11 -36: ; preds = %.lr.ph, %57 - %indvars.iv40 = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next41, %57 ] - %.235 = phi i32 [ 1, %.lr.ph ], [ %spec.select, %57 ] +36: ; preds = %.lr.ph, %56 + %indvars.iv40 = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next40, %56 ] %37 = call i32 @H5Eauto_is_v2(i64 noundef 0, ptr noundef nonnull %6) #16 %38 = load i32, ptr %6, align 4 %.not27 = icmp eq i32 %38, 0 @@ -3211,43 +3210,37 @@ define internal range(i32 -1, 1) i32 @H5FD_multi_lock(ptr noundef readonly captu %46 = getelementptr inbounds nuw [7 x ptr], ptr %10, i64 0, i64 %indvars.iv40 %47 = load ptr, ptr %46, align 8 %48 = call i32 @H5FDunlock(ptr noundef %47) #16 - %49 = lshr i32 %48, 31 - %spec.select = add i32 %49, %.235 - %50 = load i32, ptr %6, align 4 - %.not28 = icmp eq i32 %50, 0 - %51 = load ptr, ptr %7, align 8 - %52 = load ptr, ptr %8, align 8 - br i1 %.not28, label %55, label %53 - -53: ; preds = %45 - %54 = call i32 @H5Eset_auto2(i64 noundef 0, ptr noundef %51, ptr noundef %52) #16 - br label %57 + %49 = load i32, ptr %6, align 4 + %spec.select = icmp eq i32 %49, 0 + %50 = load ptr, ptr %7, align 8 + %.not28 = load ptr, ptr %8, align 8 + br i1 %.not28, label %57, label %52 55: ; preds = %45 - %56 = call i32 @H5Eset_auto1(ptr noundef %51, ptr noundef %52) #16 - br label %57 + %56 = call i32 @H5Eset_auto2(i64 noundef 0, ptr noundef %50, ptr noundef %51) #16 + br label %56 -57: ; preds = %53, %55 - %indvars.iv.next41 = add nuw nsw i64 %indvars.iv40, 1 - %exitcond46.not = icmp eq i64 %indvars.iv.next41, %wide.trip.count - br i1 %exitcond46.not, label %._crit_edge, label %36 +57: ; preds = %45 + %indvars.iv.next41 = call i32 @H5Eset_auto1(ptr noundef %50, ptr noundef %51) #16 + br label %._crit_edge.thread -._crit_edge: ; preds = %57 - %58 = icmp eq i32 %spec.select, 0 - br i1 %58, label %.thread30, label %._crit_edge.thread +._crit_edge: ; preds = %52, %57 + %58 = add nuw nsw i64 %indvars.iv39, 1 + %exitcond45.not = icmp eq i64 %58, %wide.trip.count + br i1 %exitcond45.not, label %._crit_edge, label %36 -._crit_edge.thread: ; preds = %.preheader, %._crit_edge +._crit_edge.thread: ; preds = %56, %.preheader + %57 = call i32 @H5open() #16 + %58 = load i64, ptr @H5E_ERR_CLS_g, align 8 %59 = call i32 @H5open() #16 - %60 = load i64, ptr @H5E_ERR_CLS_g, align 8 + %60 = load i64, ptr @H5E_VFL_g, align 8 %61 = call i32 @H5open() #16 - %62 = load i64, ptr @H5E_VFL_g, align 8 - %63 = call i32 @H5open() #16 - %64 = load i64, ptr @H5E_CANTLOCKFILE_g, align 8 - %65 = call i32 (i64, ptr, ptr, i32, i64, i64, i64, ptr, ...) @H5Epush2(i64 noundef 0, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.51, i32 noundef 1937, i64 noundef %60, i64 noundef %62, i64 noundef %64, ptr noundef nonnull @.str.52) #16 + %62 = load i64, ptr @H5E_CANTLOCKFILE_g, align 8 + %63 = call i32 (i64, ptr, ptr, i32, i64, i64, i64, ptr, ...) @H5Epush2(i64 noundef 0, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.51, i32 noundef 1937, i64 noundef %58, i64 noundef %60, i64 noundef %62, ptr noundef nonnull @.str.52) #16 br label %.thread30 -.thread30: ; preds = %35, %._crit_edge, %._crit_edge.thread - %.022 = phi i32 [ -1, %._crit_edge.thread ], [ 0, %._crit_edge ], [ 0, %35 ] +.thread30: ; preds = %35, %._crit_edge.thread + %.022 = phi i32 [ -1, %._crit_edge.thread ], [ 0, %35 ] ret i32 %.022 } @@ -3268,7 +3261,7 @@ define internal range(i32 -1, 1) i32 @H5FD_multi_unlock(ptr noundef readonly cap 7: ; preds = %4 %8 = tail call i32 @H5FDunlock(ptr noundef nonnull %6) #16 %9 = lshr i32 %8, 31 - %spec.select = add i32 %9, %.0913 + %spec.select = add nsw i32 %9, %.0913 br label %10 10: ; preds = %7, %4 diff --git a/bench/jq/optimized/regcomp.ll b/bench/jq/optimized/regcomp.ll index 158bdfa9650..5ea76f96410 100644 --- a/bench/jq/optimized/regcomp.ll +++ b/bench/jq/optimized/regcomp.ll @@ -15504,7 +15504,7 @@ common.ret160: ; preds = %169, %186, %283, %2 %250 = load i32, ptr %249, align 4 %251 = lshr i32 %250, 1 %252 = and i32 %251, 2 - %spec.select.i61 = add nuw i32 %252, %.1.i60 + %spec.select.i61 = add nuw nsw i32 %252, %.1.i60 br label %common.ret160 253: ; preds = %223 @@ -15542,7 +15542,7 @@ common.ret160: ; preds = %169, %186, %283, %2 %273 = load i32, ptr %272, align 4 %274 = lshr i32 %273, 1 %275 = and i32 %274, 2 - %spec.select53.i = add nuw i32 %275, %.2.i58 + %spec.select53.i = add nuw nsw i32 %275, %.2.i58 br label %common.ret160 276: ; preds = %tailrecurse diff --git a/bench/meshlab/optimized/filter_measure.ll b/bench/meshlab/optimized/filter_measure.ll index a7ac8ca022a..42c84f82f86 100644 --- a/bench/meshlab/optimized/filter_measure.ll +++ b/bench/meshlab/optimized/filter_measure.ll @@ -5798,13 +5798,13 @@ _ZN3vcg3tri5CleanI6CMeshOE28HasConsistentPerFaceFauxFlagERKS2_.exit: ; preds = % 145: ; preds = %.lr.ph.i126 %146 = lshr i32 %143, 18 %147 = and i32 %146, 1 - %spec.select.i131 = add i32 %147, %.020.i + %spec.select.i131 = add nsw i32 %147, %.020.i %148 = lshr i32 %143, 19 %149 = and i32 %148, 1 - %.2.i = add i32 %spec.select.i131, %149 + %.2.i = add nsw i32 %spec.select.i131, %149 %150 = lshr i32 %143, 20 %151 = and i32 %150, 1 - %spec.select7.i = add i32 %.2.i, %151 + %spec.select7.i = add nsw i32 %.2.i, %151 br label %152 152: ; preds = %145, %.lr.ph.i126 diff --git a/bench/mold/optimized/output-chunks.cc.ALPHA.ll b/bench/mold/optimized/output-chunks.cc.ALPHA.ll index 565150ce856..48293a8bef9 100644 --- a/bench/mold/optimized/output-chunks.cc.ALPHA.ll +++ b/bench/mold/optimized/output-chunks.cc.ALPHA.ll @@ -10185,13 +10185,13 @@ for.body: ; preds = %for.cond.preheader, %16 = lshr i16 %bf.load, 5 %17 = and i16 %16, 1 %18 = zext nneg i16 %17 to i64 - %spec.select = add i64 %num_exported.078, %18 + %spec.select = add nuw nsw i64 %num_exported.078, %18 %inc25 = add nuw nsw i64 %i.077, 1 %exitcond.not = icmp eq i64 %inc25, %sub.ptr.div.i br i1 %exitcond.not, label %for.end.loopexit, label %for.body, !llvm.loop !99 for.end.loopexit: ; preds = %for.body - %19 = sdiv i64 %spec.select, 8 + %19 = lshr i64 %spec.select, 3 %20 = trunc i64 %19 to i32 %21 = add i32 %20, 1 br label %for.end diff --git a/bench/opencv/optimized/freak.ll b/bench/opencv/optimized/freak.ll index 7a5b178ccaf..77085ab13a2 100644 --- a/bench/opencv/optimized/freak.ll +++ b/bench/opencv/optimized/freak.ll @@ -1643,7 +1643,7 @@ _ZNK2cv11_InputArray6getMatEi.exit237: ; preds = %198, %201 %294 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %293) %295 = lshr i32 %294, 23 %296 = and i32 %295, 256 - %spec.select = add i32 %296, %294 + %spec.select = add nsw i32 %296, %294 %297 = icmp sgt i32 %spec.select, 255 %298 = add nsw i32 %spec.select, -256 %spec.select220 = select i1 %297, i32 %298, i32 %spec.select @@ -1946,7 +1946,7 @@ _ZNK2cv11_InputArray6getMatEi.exit241: ; preds = %351, %354 %448 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %447) %449 = lshr i32 %448, 23 %450 = and i32 %449, 256 - %spec.select219 = add i32 %450, %448 + %spec.select219 = add nsw i32 %450, %448 %451 = icmp sgt i32 %spec.select219, 255 %452 = add nsw i32 %spec.select219, -256 %spec.select221 = select i1 %451, i32 %452, i32 %spec.select219 @@ -2592,7 +2592,7 @@ _ZNK2cv11_InputArray6getMatEi.exit237: ; preds = %198, %201 %294 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %293) %295 = lshr i32 %294, 23 %296 = and i32 %295, 256 - %spec.select = add i32 %296, %294 + %spec.select = add nsw i32 %296, %294 %297 = icmp sgt i32 %spec.select, 255 %298 = add nsw i32 %spec.select, -256 %spec.select220 = select i1 %297, i32 %298, i32 %spec.select @@ -2895,7 +2895,7 @@ _ZNK2cv11_InputArray6getMatEi.exit241: ; preds = %351, %354 %448 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %447) %449 = lshr i32 %448, 23 %450 = and i32 %449, 256 - %spec.select219 = add i32 %450, %448 + %spec.select219 = add nsw i32 %450, %448 %451 = icmp sgt i32 %spec.select219, 255 %452 = add nsw i32 %spec.select219, -256 %spec.select221 = select i1 %451, i32 %452, i32 %spec.select219 @@ -3541,7 +3541,7 @@ _ZNK2cv11_InputArray6getMatEi.exit237: ; preds = %198, %201 %294 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %293) %295 = lshr i32 %294, 23 %296 = and i32 %295, 256 - %spec.select = add i32 %296, %294 + %spec.select = add nsw i32 %296, %294 %297 = icmp sgt i32 %spec.select, 255 %298 = add nsw i32 %spec.select, -256 %spec.select220 = select i1 %297, i32 %298, i32 %spec.select @@ -3844,7 +3844,7 @@ _ZNK2cv11_InputArray6getMatEi.exit241: ; preds = %351, %354 %448 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %447) %449 = lshr i32 %448, 23 %450 = and i32 %449, 256 - %spec.select219 = add i32 %450, %448 + %spec.select219 = add nsw i32 %450, %448 %451 = icmp sgt i32 %spec.select219, 255 %452 = add nsw i32 %spec.select219, -256 %spec.select221 = select i1 %451, i32 %452, i32 %spec.select219 @@ -4490,7 +4490,7 @@ _ZNK2cv11_InputArray6getMatEi.exit237: ; preds = %198, %201 %294 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %293) %295 = lshr i32 %294, 23 %296 = and i32 %295, 256 - %spec.select = add i32 %296, %294 + %spec.select = add nsw i32 %296, %294 %297 = icmp sgt i32 %spec.select, 255 %298 = add nsw i32 %spec.select, -256 %spec.select220 = select i1 %297, i32 %298, i32 %spec.select @@ -4793,7 +4793,7 @@ _ZNK2cv11_InputArray6getMatEi.exit241: ; preds = %351, %354 %448 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %447) %449 = lshr i32 %448, 23 %450 = and i32 %449, 256 - %spec.select219 = add i32 %450, %448 + %spec.select219 = add nsw i32 %450, %448 %451 = icmp sgt i32 %spec.select219, 255 %452 = add nsw i32 %spec.select219, -256 %spec.select221 = select i1 %451, i32 %452, i32 %spec.select219 @@ -5439,7 +5439,7 @@ _ZNK2cv11_InputArray6getMatEi.exit237: ; preds = %198, %201 %294 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %293) %295 = lshr i32 %294, 23 %296 = and i32 %295, 256 - %spec.select = add i32 %296, %294 + %spec.select = add nsw i32 %296, %294 %297 = icmp sgt i32 %spec.select, 255 %298 = add nsw i32 %spec.select, -256 %spec.select220 = select i1 %297, i32 %298, i32 %spec.select @@ -5742,7 +5742,7 @@ _ZNK2cv11_InputArray6getMatEi.exit241: ; preds = %351, %354 %448 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %447) %449 = lshr i32 %448, 23 %450 = and i32 %449, 256 - %spec.select219 = add i32 %450, %448 + %spec.select219 = add nsw i32 %450, %448 %451 = icmp sgt i32 %spec.select219, 255 %452 = add nsw i32 %spec.select219, -256 %spec.select221 = select i1 %451, i32 %452, i32 %spec.select219 @@ -6388,7 +6388,7 @@ _ZNK2cv11_InputArray6getMatEi.exit237: ; preds = %198, %201 %294 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %293) %295 = lshr i32 %294, 23 %296 = and i32 %295, 256 - %spec.select = add i32 %296, %294 + %spec.select = add nsw i32 %296, %294 %297 = icmp sgt i32 %spec.select, 255 %298 = add nsw i32 %spec.select, -256 %spec.select220 = select i1 %297, i32 %298, i32 %spec.select @@ -6691,7 +6691,7 @@ _ZNK2cv11_InputArray6getMatEi.exit241: ; preds = %351, %354 %448 = call noundef i32 @llvm.x86.sse2.cvtsd2si(<2 x double> %447) %449 = lshr i32 %448, 23 %450 = and i32 %449, 256 - %spec.select219 = add i32 %450, %448 + %spec.select219 = add nsw i32 %450, %448 %451 = icmp sgt i32 %spec.select219, 255 %452 = add nsw i32 %spec.select219, -256 %spec.select221 = select i1 %451, i32 %452, i32 %spec.select219 diff --git a/bench/redis/optimized/cluster_legacy.ll b/bench/redis/optimized/cluster_legacy.ll index 49ab8c8d314..96a04a8c36f 100644 --- a/bench/redis/optimized/cluster_legacy.ll +++ b/bench/redis/optimized/cluster_legacy.ll @@ -5390,7 +5390,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %and = lshr i32 %3, 3 %4 = and i32 %and, 1 %5 = xor i32 %4, 1 - %spec.select = add i32 %5, %okslaves.07 + %spec.select = add nuw nsw i32 %5, %okslaves.07 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !30 @@ -5934,7 +5934,7 @@ clusterNodeFailureReportsCount.exit: ; preds = %if.end.i.i, %if.end %flags.i = getelementptr inbounds nuw i8, ptr %10, i64 88 %11 = load i32, ptr %flags.i, align 8 %and.i = and i32 %11, 1 - %spec.select = add i32 %and.i, %conv.i + %spec.select = add nsw i32 %and.i, %conv.i %cmp.not = icmp sgt i32 %spec.select, %div br i1 %cmp.not, label %do.body, label %return @@ -13610,7 +13610,7 @@ while.body: ; preds = %if.end16, %if.end77 %flags21 = getelementptr inbounds nuw i8, ptr %call19, i64 88 %11 = load i32, ptr %flags21, align 8 %12 = and i32 %11, 266 - %narrow.not = icmp eq i32 %12, 256 + %narrow.not = icmp ne i32 %12, 256 %and.i = and i32 %11, 1 %tobool35.not = icmp eq i32 %and.i, 0 br i1 %tobool35.not, label %if.end38.thread, label %if.then36 @@ -13644,14 +13644,14 @@ for.body.i: ; preds = %for.body.i, %for.bo br i1 %exitcond.not.i, label %if.end38, label %for.body.i, !llvm.loop !30 if.end38: ; preds = %for.body.i - %cmp39 = icmp sgt i32 %spec.select.i, 0 - br i1 %cmp39, label %if.else, label %if.end38.thread + %cmp39 = icmp ne i32 %spec.select.i, 0 + %brmerge = or i1 %cmp39, %narrow.not + br i1 %brmerge, label %if.else, label %if.then43 -if.end38.thread: ; preds = %if.then36, %while.body, %if.end38 - %okslaves20.041 = phi i32 [ %spec.select.i, %if.end38 ], [ 0, %while.body ], [ 0, %if.then36 ] - br i1 %narrow.not, label %if.then43, label %if.else +if.end38.thread: ; preds = %if.then36, %while.body + br i1 %narrow.not, label %if.else, label %if.then43 -if.then43: ; preds = %if.end38.thread +if.then43: ; preds = %if.end38, %if.end38.thread %tobool44.not = icmp eq ptr %target.057, null br i1 %tobool44.not, label %land.lhs.true45, label %if.end48 @@ -13675,13 +13675,13 @@ if.then50: ; preds = %if.end48 br label %if.end55 if.else: ; preds = %if.end38, %if.end38.thread - %okslaves20.04145 = phi i32 [ %okslaves20.041, %if.end38.thread ], [ %spec.select.i, %if.end38 ] + %okslaves20.04145 = phi i32 [ 0, %if.end38.thread ], [ %spec.select.i, %if.end38 ] %orphaned_time54 = getelementptr inbounds nuw i8, ptr %call19, i64 2248 store i64 0, ptr %orphaned_time54, align 8 br label %if.end55 if.end55: ; preds = %if.end48, %if.then50, %if.else - %okslaves20.04144 = phi i32 [ %okslaves20.041, %if.end48 ], [ %okslaves20.041, %if.then50 ], [ %okslaves20.04145, %if.else ] + %okslaves20.04144 = phi i32 [ 0, %if.end48 ], [ 0, %if.then50 ], [ %okslaves20.04145, %if.else ] %target.2 = phi ptr [ %target.1, %if.end48 ], [ %target.1, %if.then50 ], [ %target.057, %if.else ] %cmp56 = icmp eq i32 %okslaves20.04144, %max_slaves br i1 %cmp56, label %for.cond58.preheader, label %if.end77 @@ -14249,7 +14249,7 @@ for.body.i: ; preds = %for.body.i, %for.bo %and.i75 = lshr i32 %56, 3 %57 = and i32 %and.i75, 1 %58 = xor i32 %57, 1 - %spec.select.i = add i32 %58, %okslaves.07.i + %spec.select.i = add nuw nsw i32 %58, %okslaves.07.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i br i1 %exitcond.not.i, label %clusterCountNonFailingSlaves.exit, label %for.body.i, !llvm.loop !30 @@ -14267,7 +14267,7 @@ land.lhs.true62: ; preds = %if.then59, %cluster land.lhs.true64: ; preds = %land.lhs.true62 %and66 = lshr i32 %48, 8 %60 = and i32 %and66, 1 - %spec.select = add i32 %60, %orphaned_masters.0.ph + %spec.select = add nsw i32 %60, %orphaned_masters.0.ph br label %if.end70 if.end70: ; preds = %land.lhs.true64, %land.lhs.true62, %clusterCountNonFailingSlaves.exit diff --git a/bench/redis/optimized/t_zset.ll b/bench/redis/optimized/t_zset.ll index 1c17a3b21ea..09374ad5699 100644 --- a/bench/redis/optimized/t_zset.ll +++ b/bench/redis/optimized/t_zset.ll @@ -6737,21 +6737,21 @@ if.end129: ; preds = %for.body115 %32 = load i32, ptr %retflags, align 4 %and130 = lshr i32 %32, 2 %33 = and i32 %and130, 1 - %spec.select = add i32 %33, %added.2125 + %spec.select = add nuw nsw i32 %33, %added.2125 %and135 = lshr i32 %32, 3 %34 = and i32 %and135, 1 - %updated.3 = add i32 %34, %updated.2126 + %updated.3 = add nuw nsw i32 %34, %updated.2126 %and140 = and i32 %32, 1 %35 = xor i32 %and140, 1 - %processed.2 = add i32 %35, %processed.1127 + %processed.2 = add nuw nsw i32 %35, %processed.1127 %indvars.iv.next144 = add nuw nsw i64 %indvars.iv143, 1 %exitcond149.not = icmp eq i64 %indvars.iv.next144, %wide.trip.count148 br i1 %exitcond149.not, label %reply_to_client, label %for.body115, !llvm.loop !59 reply_to_client: ; preds = %if.end129 %36 = load double, ptr %newscore, align 8 - %add148 = add nsw i32 %updated.3, %spec.select - %conv149 = sext i32 %add148 to i64 + %add148 = add nuw nsw i32 %updated.3, %spec.select + %conv149 = zext nneg i32 %add148 to i64 %37 = load i64, ptr getelementptr inbounds nuw (i8, ptr @server, i64 4104), align 8 %add150 = add nsw i64 %37, %conv149 store i64 %add150, ptr getelementptr inbounds nuw (i8, ptr @server, i64 4104), align 8 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..08eb448b921 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/127437 export COMPTIME_MODE=0 # Please rebase manually