diff options
author | Tim Shen <timshen91@gmail.com> | 2018-07-02 20:01:54 +0000 |
---|---|---|
committer | Tim Shen <timshen91@gmail.com> | 2018-07-02 20:01:54 +0000 |
commit | c7cef4bcc4400673ffb86be04c006790577f7f56 (patch) | |
tree | 022bdc0f4bbbd8ba8c449d7e09b10ce282886a0c /llvm/test/Analysis/ScalarEvolution/zext-mul.ll | |
parent | 4bc7f3d4d635c05a874c180c03e7a0c130f07cd2 (diff) | |
download | bcm5719-llvm-c7cef4bcc4400673ffb86be04c006790577f7f56.tar.gz bcm5719-llvm-c7cef4bcc4400673ffb86be04c006790577f7f56.zip |
[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428).
Summary:
Comment on Transforms/LoopVersioning/incorrect-phi.ll: With the change
SCEV is able to prove that the loop doesn't wrap-self (due to zext i16
to i64), disabling the entire loop versioning pass. Removed the zext and
just use i64.
Reviewers: sanjoy
Subscribers: jlebar, hiraditya, javed.absar, bixia, llvm-commits
Differential Revision: https://reviews.llvm.org/D48409
llvm-svn: 336140
Diffstat (limited to 'llvm/test/Analysis/ScalarEvolution/zext-mul.ll')
-rw-r--r-- | llvm/test/Analysis/ScalarEvolution/zext-mul.ll | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/test/Analysis/ScalarEvolution/zext-mul.ll b/llvm/test/Analysis/ScalarEvolution/zext-mul.ll index ae93a9288d8..0c0f16c1dea 100644 --- a/llvm/test/Analysis/ScalarEvolution/zext-mul.ll +++ b/llvm/test/Analysis/ScalarEvolution/zext-mul.ll @@ -19,16 +19,20 @@ define void @no_range() { } ; CHECK-LABEL: @range -; -; This had to be disabled when r334428 was reverted. We should enable this test -; when r334428 is reapplied with a fix. define void @range() { - %a = call i32 @get_int(), !range !0 + %a = call i32 @get_int(), !range !{i32 0, i32 100} %b = mul i32 %a, 4 %c = zext i32 %b to i64 ; CHECK: %c - ; CHECK-NEXT: --> (zext i32 (4 * %a) to i64) + ; CHECK-NEXT: --> (4 * (zext i32 %a to i64))<nuw><nsw> ret void } -!0 = !{i32 0, i32 100} +; CHECK-LABEL: @no_nuw +define void @no_nuw() { + %a = call i32 @get_int(), !range !{i32 0, i32 3} + %b = mul i32 %a, -100 + ; CHECK: %b + ; CHECK-NEXT: --> (-100 * %a)<nsw> + ret void +} |