[llvm] 65d4354 - [InstCombine] add more tests for nsw propagation; NFC

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 24 11:53:51 PDT 2022


Thanks!

On Thu, Mar 24, 2022 at 9:43 PM Sanjay Patel via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
>
>
> Author: Sanjay Patel
> Date: 2022-03-24T14:40:59-04:00
> New Revision: 65d43541499822cc4c0c160b32be34c48dda4939
>
> URL: https://github.com/llvm/llvm-project/commit/65d43541499822cc4c0c160b32be34c48dda4939
> DIFF: https://github.com/llvm/llvm-project/commit/65d43541499822cc4c0c160b32be34c48dda4939.diff
>
> LOG: [InstCombine] add more tests for nsw propagation; NFC
>
> Follow-up as suggested with b6efd2510a1efaf2 -
> show a couple of examples of general subtraction
> (the earlier patch was all negations).
>
> Added:
>
>
> Modified:
>     llvm/test/Transforms/InstCombine/nsw.ll
>
> Removed:
>
>
>
> ################################################################################
> diff  --git a/llvm/test/Transforms/InstCombine/nsw.ll b/llvm/test/Transforms/InstCombine/nsw.ll
> index 4842a2139e120..f7b8c83b5111e 100644
> --- a/llvm/test/Transforms/InstCombine/nsw.ll
> +++ b/llvm/test/Transforms/InstCombine/nsw.ll
> @@ -226,3 +226,29 @@ define i8 @neg_sub_sub2(i16 %a, i16 %b) {
>    %e = sub nsw i8 0, %d
>    ret i8 %e
>  }
> +
> +; Must not propagate nsw.
> +
> +define i32 @sub_sub0_nsw_nsw(i32 %a, i32 %b, i32 %c) {
> +; CHECK-LABEL: @sub_sub0_nsw_nsw(
> +; CHECK-NEXT:    [[TMP1:%.*]] = add i32 [[B:%.*]], [[C:%.*]]
> +; CHECK-NEXT:    [[S2:%.*]] = sub i32 [[A:%.*]], [[TMP1]]
> +; CHECK-NEXT:    ret i32 [[S2]]
> +;
> +  %s1 = sub nsw i32 %a, %b
> +  %s2 = sub nsw i32 %s1, %c
> +  ret i32 %s2
> +}
> +
> +; Must not propagate nsw.
> +
> +define i32 @sub_sub1_nsw_nsw(i32 %a, i32 %b, i32 %c) {
> +; CHECK-LABEL: @sub_sub1_nsw_nsw(
> +; CHECK-NEXT:    [[S1_NEG:%.*]] = sub i32 [[B:%.*]], [[A:%.*]]
> +; CHECK-NEXT:    [[S2:%.*]] = add i32 [[S1_NEG]], [[C:%.*]]
> +; CHECK-NEXT:    ret i32 [[S2]]
> +;
> +  %s1 = sub nsw i32 %a, %b
> +  %s2 = sub nsw i32 %c, %s1
> +  ret i32 %s2
> +}
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list