diff options
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/CodeGen/AArch64/bitreverse.ll | 23 | ||||
-rw-r--r-- | llvm/test/CodeGen/PowerPC/bitreverse.ll | 23 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/bitreverse.ll | 22 |
3 files changed, 68 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/bitreverse.ll b/llvm/test/CodeGen/AArch64/bitreverse.ll new file mode 100644 index 00000000000..b780412f765 --- /dev/null +++ b/llvm/test/CodeGen/AArch64/bitreverse.ll @@ -0,0 +1,23 @@ +; RUN: llc -mtriple=aarch64-eabi %s -o - | FileCheck %s + +; These tests just check that the plumbing is in place for @llvm.bitreverse. The +; actual output is massive at the moment as llvm.bitreverse is not yet legal. + +declare <2 x i16> @llvm.bitreverse.v2i16(<2 x i16>) readnone + +define <2 x i16> @f(<2 x i16> %a) { +; CHECK-LABEL: f: +; CHECK: ushr + %b = call <2 x i16> @llvm.bitreverse.v2i16(<2 x i16> %a) + ret <2 x i16> %b +} + +declare i8 @llvm.bitreverse.i8(i8) readnone + +define i8 @g(i8 %a) { +; CHECK-LABEL: g: +; CHECK: lsl +; CHECK: and + %b = call i8 @llvm.bitreverse.i8(i8 %a) + ret i8 %b +} diff --git a/llvm/test/CodeGen/PowerPC/bitreverse.ll b/llvm/test/CodeGen/PowerPC/bitreverse.ll new file mode 100644 index 00000000000..1c3741a9a69 --- /dev/null +++ b/llvm/test/CodeGen/PowerPC/bitreverse.ll @@ -0,0 +1,23 @@ +; RUN: llc -march=ppc64 %s -o - | FileCheck %s + +; These tests just check that the plumbing is in place for @llvm.bitreverse. The +; actual output is massive at the moment as llvm.bitreverse is not yet legal. + +declare <2 x i16> @llvm.bitreverse.v2i16(<2 x i16>) readnone + +define <2 x i16> @f(<2 x i16> %a) { +; CHECK-LABEL: f: +; CHECK: rlwinm + %b = call <2 x i16> @llvm.bitreverse.v2i16(<2 x i16> %a) + ret <2 x i16> %b +} + +declare i8 @llvm.bitreverse.i8(i8) readnone + +define i8 @g(i8 %a) { +; CHECK-LABEL: g: +; CHECK: rlwinm +; CHECK: rlwimi + %b = call i8 @llvm.bitreverse.i8(i8 %a) + ret i8 %b +} diff --git a/llvm/test/CodeGen/X86/bitreverse.ll b/llvm/test/CodeGen/X86/bitreverse.ll new file mode 100644 index 00000000000..e3bc8ace38a --- /dev/null +++ b/llvm/test/CodeGen/X86/bitreverse.ll @@ -0,0 +1,22 @@ +; RUN: llc -march=x86 %s -o - | FileCheck %s + +; These tests just check that the plumbing is in place for @llvm.bitreverse. The +; actual output is massive at the moment as llvm.bitreverse is not yet legal. + +declare <2 x i16> @llvm.bitreverse.v2i16(<2 x i16>) readnone + +define <2 x i16> @f(<2 x i16> %a) { +; CHECK-LABEL: f: +; CHECK: shll + %b = call <2 x i16> @llvm.bitreverse.v2i16(<2 x i16> %a) + ret <2 x i16> %b +} + +declare i8 @llvm.bitreverse.i8(i8) readnone + +define i8 @g(i8 %a) { +; CHECK-LABEL: g: +; CHECK: shlb + %b = call i8 @llvm.bitreverse.i8(i8 %a) + ret i8 %b +} |