diff options
Diffstat (limited to 'llvm/test/Transforms/InstSimplify/bswap.ll')
-rw-r--r-- | llvm/test/Transforms/InstSimplify/bswap.ll | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstSimplify/bswap.ll b/llvm/test/Transforms/InstSimplify/bswap.ll new file mode 100644 index 00000000000..5c67aa0a764 --- /dev/null +++ b/llvm/test/Transforms/InstSimplify/bswap.ll @@ -0,0 +1,46 @@ +; NOTE: Assertions have been autogenerated by update_test_checks.py +; RUN: opt < %s -S -instsimplify | FileCheck %s + +declare i16 @llvm.bswap.i16(i16) + +define i1 @test1(i16 %arg) { +; CHECK-LABEL: @test1( +; CHECK: ret i1 false +; + %a = or i16 %arg, 1 + %b = call i16 @llvm.bswap.i16(i16 %a) + %res = icmp eq i16 %b, 0 + ret i1 %res +} + +define i1 @test2(i16 %arg) { +; CHECK-LABEL: @test2( +; CHECK: ret i1 false +; + %a = or i16 %arg, 1024 + %b = call i16 @llvm.bswap.i16(i16 %a) + %res = icmp eq i16 %b, 0 + ret i1 %res +} + +define i1 @test3(i16 %arg) { +; CHECK-LABEL: @test3( +; CHECK: ret i1 false +; + %a = and i16 %arg, 1 + %b = call i16 @llvm.bswap.i16(i16 %a) + %and = and i16 %b, 1 + %res = icmp eq i16 %and, 1 + ret i1 %res +} + +define i1 @test4(i16 %arg) { +; CHECK-LABEL: @test4( +; CHECK: ret i1 false +; + %a = and i16 %arg, 511 + %b = call i16 @llvm.bswap.i16(i16 %a) + %and = and i16 %b, 256 + %res = icmp eq i16 %and, 1 + ret i1 %res +} |