summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-05-18 16:29:04 +0000
committerDan Gohman <gohman@apple.com>2009-05-18 16:29:04 +0000
commit10978bd5918689334d44cd30e5cfe06588b6014d (patch)
tree9f773126427c2836ce187eabe01178eca72cddcb /test
parent0bac95e2e2044b574f3aea14a3fdb31c1b95240f (diff)
downloadllvm-10978bd5918689334d44cd30e5cfe06588b6014d.tar.gz
llvm-10978bd5918689334d44cd30e5cfe06588b6014d.tar.bz2
llvm-10978bd5918689334d44cd30e5cfe06588b6014d.tar.xz
Teach ScalarEvolution to recognize x^-1 in the case where non-demanded
bits have been stripped out by instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72010 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Analysis/ScalarEvolution/and-xor.ll8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/Analysis/ScalarEvolution/and-xor.ll b/test/Analysis/ScalarEvolution/and-xor.ll
new file mode 100644
index 0000000000..94cca83ea7
--- /dev/null
+++ b/test/Analysis/ScalarEvolution/and-xor.ll
@@ -0,0 +1,8 @@
+; RUN: llvm-as < %s | opt -scalar-evolution -analyze -disable-output \
+; RUN: | grep {\\--> (zext} | count 2
+
+define i32 @foo(i32 %x) {
+ %n = and i32 %x, 255
+ %y = xor i32 %n, 255
+ ret i32 %y
+}