summaryrefslogtreecommitdiffstats
path: root/llvm/test/Analysis/ScalarEvolution/zext-mul.ll
diff options
context:
space:
mode:
authorTim Shen <timshen91@gmail.com>2018-07-02 20:01:54 +0000
committerTim Shen <timshen91@gmail.com>2018-07-02 20:01:54 +0000
commitc7cef4bcc4400673ffb86be04c006790577f7f56 (patch)
tree022bdc0f4bbbd8ba8c449d7e09b10ce282886a0c /llvm/test/Analysis/ScalarEvolution/zext-mul.ll
parent4bc7f3d4d635c05a874c180c03e7a0c130f07cd2 (diff)
downloadbcm5719-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.ll16
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
+}
OpenPOWER on IntegriCloud