diff options
| author | Mehdi Amini <mehdi.amini@apple.com> | 2015-10-07 18:14:25 +0000 |
|---|---|---|
| committer | Mehdi Amini <mehdi.amini@apple.com> | 2015-10-07 18:14:25 +0000 |
| commit | 044cb34bdc76d14086e39a3e5eaff88c7890e9ea (patch) | |
| tree | 48a8e009c55c594f5d9b721cc954d46f0ebef8b3 /llvm/test/Analysis/ScalarEvolution | |
| parent | daad571ba479008236227d0635e0400d3b62b1fa (diff) | |
| download | bcm5719-llvm-044cb34bdc76d14086e39a3e5eaff88c7890e9ea.tar.gz bcm5719-llvm-044cb34bdc76d14086e39a3e5eaff88c7890e9ea.zip | |
Revert "Revert "This patch builds on top of D13378 to handle constant condition.""
This reverts commit r249528 and reapply r249431. The fix for the
fallout has been commited in r249575.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 249581
Diffstat (limited to 'llvm/test/Analysis/ScalarEvolution')
| -rw-r--r-- | llvm/test/Analysis/ScalarEvolution/constant_condition.ll | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/test/Analysis/ScalarEvolution/constant_condition.ll b/llvm/test/Analysis/ScalarEvolution/constant_condition.ll new file mode 100644 index 00000000000..32ab91b2c85 --- /dev/null +++ b/llvm/test/Analysis/ScalarEvolution/constant_condition.ll @@ -0,0 +1,51 @@ +; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s + +define i32 @branch_true(i32 %x, i32 %y) { +; CHECK-LABEL: Classifying expressions for: @branch_true + entry: + br i1 true, label %add, label %merge + + add: + %sum = add i32 %x, %y + br label %merge + + merge: + %v = phi i32 [ %sum, %add ], [ %x, %entry ] +; CHECK: %v = phi i32 [ %sum, %add ], [ %x, %entry ] +; CHECK-NEXT: --> (%x + %y) U: full-set S: full-set + ret i32 %v +} + +define i32 @branch_false(i32 %x, i32 %y) { +; CHECK-LABEL: Classifying expressions for: @branch_false + entry: + br i1 false, label %add, label %merge + + add: + %sum = add i32 %x, %y + br label %merge + + merge: + %v = phi i32 [ %sum, %add ], [ %x, %entry ] +; CHECK: %v = phi i32 [ %sum, %add ], [ %x, %entry ] +; CHECK-NEXT: --> %x U: full-set S: full-set + ret i32 %v +} + +define i32 @select_true(i32 %x, i32 %y) { +; CHECK-LABEL: Classifying expressions for: @select_true + entry: + %v = select i1 true, i32 %x, i32 %y +; CHECK: %v = select i1 true, i32 %x, i32 %y +; CHECK-NEXT: --> %x U: full-set S: full-set + ret i32 %v +} + +define i32 @select_false(i32 %x, i32 %y) { +; CHECK-LABEL: Classifying expressions for: @select_false + entry: + %v = select i1 false, i32 %x, i32 %y +; CHECK: %v = select i1 false, i32 %x, i32 %y +; CHECK-NEXT: --> %y U: full-set S: full-set + ret i32 %v +} |

