diff options
author | Jim Grosbach <grosbach@apple.com> | 2014-06-16 21:55:35 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2014-06-16 21:55:35 +0000 |
commit | cc71514d3a88b01726960a22297fd1f8ea508781 (patch) | |
tree | 85e2b5219e2b39fe7a973e2398179119a766a08f /llvm/lib | |
parent | 07393ba31b112f4b5b32171c204fd810b6a6575a (diff) | |
download | bcm5719-llvm-cc71514d3a88b01726960a22297fd1f8ea508781.tar.gz bcm5719-llvm-cc71514d3a88b01726960a22297fd1f8ea508781.zip |
AArch64: Add backend intrinsic for rbit.
Define an intrinsic for the frontend to use and pattern match it to
the RBIT instruction.
rdar://9283021
llvm-svn: 211058
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64InstrInfo.td | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td index 9ad36e8740d..b1e8fa64c2d 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td +++ b/llvm/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>; |