diff options
author | David Green <david.green@arm.com> | 2019-11-30 16:39:29 +0000 |
---|---|---|
committer | David Green <david.green@arm.com> | 2019-11-30 16:58:01 +0000 |
commit | 59b56e5c579c51e1333b4c6e96d127f50f191c14 (patch) | |
tree | 105dd9f697ab4235e0a4c5c32e9e2d0a07e7d6f3 /llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll | |
parent | 3a1bef5616c3eb466b5f8a076385ee09e5a9ad9a (diff) | |
download | bcm5719-llvm-59b56e5c579c51e1333b4c6e96d127f50f191c14.tar.gz bcm5719-llvm-59b56e5c579c51e1333b4c6e96d127f50f191c14.zip |
[InstCombine] Expand usub_sat patterns to handle constants
The constants come through as add %x, -C, not a sub as would be
expected. They need some extra matchers to canonicalise them towards
usub_sat.
Differential Revision: https://reviews.llvm.org/D69514
Diffstat (limited to 'llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll')
-rw-r--r-- | llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll b/llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll index 96d0772da38..4093a121060 100644 --- a/llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll +++ b/llvm/test/Transforms/InstCombine/builtin-dynamic-object-size.ll @@ -48,10 +48,8 @@ entry: ; CHECK: define i64 @internal_pointer(i64 %sz) ; CHECK-NEXT: entry: -; CHECK-NEXT: %0 = add i64 %sz, -2 -; CHECK-NEXT: %1 = icmp ult i64 %sz, 2 -; CHECK-NEXT: %2 = select i1 %1, i64 0, i64 %0 -; CHECK-NEXT: ret i64 %2 +; CHECK-NEXT: %0 = call i64 @llvm.usub.sat.i64(i64 %sz, i64 2) +; CHECK-NEXT: ret i64 %0 ; CHECK-NEXT: } define i64 @uses_nullptr_no_fold() { |