diff options
Diffstat (limited to 'test/CodeGen/AArch64/rbit.ll')
-rw-r--r-- | test/CodeGen/AArch64/rbit.ll | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/CodeGen/AArch64/rbit.ll b/test/CodeGen/AArch64/rbit.ll index 3404ae4b6beef..288a25bd65e3d 100644 --- a/test/CodeGen/AArch64/rbit.ll +++ b/test/CodeGen/AArch64/rbit.ll @@ -1,5 +1,8 @@ ; RUN: llc -mtriple=aarch64-eabi %s -o - | FileCheck %s +; The llvm.aarch64.rbit intrinsic should be auto-upgraded to the +; target-independent bitreverse intrinsic. + ; CHECK-LABEL: rbit32 ; CHECK: rbit w0, w0 define i32 @rbit32(i32 %t) { @@ -18,3 +21,22 @@ entry: declare i64 @llvm.aarch64.rbit.i64(i64) declare i32 @llvm.aarch64.rbit.i32(i32) + +; CHECK-LABEL: rbit_generic32 +; CHECK: rbit w0, w0 +define i32 @rbit_generic32(i32 %t) { +entry: + %rbit = call i32 @llvm.bitreverse.i32(i32 %t) + ret i32 %rbit +} + +; CHECK-LABEL: rbit_generic64 +; CHECK: rbit x0, x0 +define i64 @rbit_generic64(i64 %t) { +entry: + %rbit = call i64 @llvm.bitreverse.i64(i64 %t) + ret i64 %rbit +} + +declare i32 @llvm.bitreverse.i32(i32) readnone +declare i64 @llvm.bitreverse.i64(i64) readnone |