diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2017-01-17 17:23:51 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2017-01-17 17:23:51 +0000 |
commit | 8520429bdde09567167a3f89033f6c12ec9ac103 (patch) | |
tree | 2710a466f3ebabed42cfaf210370b015f180371b /llvm/test/Transforms/InstSimplify/bitreverse.ll | |
parent | a802a5096330d121d0394d5a3a0f924feec51853 (diff) | |
download | bcm5719-llvm-8520429bdde09567167a3f89033f6c12ec9ac103.tar.gz bcm5719-llvm-8520429bdde09567167a3f89033f6c12ec9ac103.zip |
[ValueTracking] Extend known bits to understand @llvm.bitreverse.
Differential Revision: https://reviews.llvm.org/D28780
llvm-svn: 292233
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/bitreverse.ll')
-rw-r--r-- | llvm/test/Transforms/InstSimplify/bitreverse.ll | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/bitreverse.ll b/llvm/test/Transforms/InstSimplify/bitreverse.ll new file mode 100644 index 00000000000..d87b68831fe --- /dev/null +++ b/llvm/test/Transforms/InstSimplify/bitreverse.ll @@ -0,0 +1,31 @@ +; RUN: opt < %s -S -instsimplify | FileCheck %s + +declare i32 @llvm.bitreverse.i32(i32) + +; CHECK-LABEL: @test1( +; CHECK: ret i1 false +define i1 @test1(i32 %arg) { + %a = or i32 %arg, 1 + %b = call i32 @llvm.bitreverse.i32(i32 %a) + %res = icmp eq i32 %b, 0 + ret i1 %res +} + +; CHECK-LABEL: @test2( +; CHECK: ret i1 false +define i1 @test2(i32 %arg) { + %a = or i32 %arg, 1024 + %b = call i32 @llvm.bitreverse.i32(i32 %a) + %res = icmp eq i32 %b, 0 + ret i1 %res +} + +; CHECK-LABEL: @test3( +; CHECK: ret i1 false +define i1 @test3(i32 %arg) { + %a = and i32 %arg, 1 + %b = call i32 @llvm.bitreverse.i32(i32 %a) + %and = and i32 %b, 1 + %res = icmp eq i32 %and, 1 + ret i1 %res +} |