summaryrefslogtreecommitdiff
path: root/lib/Target/AArch64
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2014-06-16 21:55:35 +0000
committerJim Grosbach <grosbach@apple.com>2014-06-16 21:55:35 +0000
commit44d2cdcbf35d97b558198efa0861e0d289a657e6 (patch)
tree22d34b7dd85a1b6b818372a4a6ccf5d56d67e954 /lib/Target/AArch64
parent5c1a1b2249dce9c6d9c28bd68bb82801ea04c6a5 (diff)
downloadllvm-44d2cdcbf35d97b558198efa0861e0d289a657e6.tar.gz
llvm-44d2cdcbf35d97b558198efa0861e0d289a657e6.tar.bz2
llvm-44d2cdcbf35d97b558198efa0861e0d289a657e6.tar.xz
AArch64: Add backend intrinsic for rbit.
Define an intrinsic for the frontend to use and pattern match it to the RBIT instruction. rdar://9283021 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211058 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/AArch64')
-rw-r--r--lib/Target/AArch64/AArch64InstrInfo.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/AArch64/AArch64InstrInfo.td b/lib/Target/AArch64/AArch64InstrInfo.td
index 9ad36e8740..b1e8fa64c2 100644
--- a/lib/Target/AArch64/AArch64InstrInfo.td
+++ b/lib/Target/AArch64/AArch64InstrInfo.td
@@ -737,6 +737,10 @@ def : Pat<(not GPR64:$Xm), (ORNXrr XZR, GPR64:$Xm)>;
defm CLS : OneOperandData<0b101, "cls">;
defm CLZ : OneOperandData<0b100, "clz", ctlz>;
defm RBIT : OneOperandData<0b000, "rbit">;
+
+def : Pat<(int_aarch64_rbit GPR32:$Rn), (RBITWr $Rn)>;
+def : Pat<(int_aarch64_rbit GPR64:$Rn), (RBITXr $Rn)>;
+
def REV16Wr : OneWRegData<0b001, "rev16",
UnOpFrag<(rotr (bswap node:$LHS), (i64 16))>>;
def REV16Xr : OneXRegData<0b001, "rev16", null_frag>;