AArch64: add rev64 alias for 64-bit rev instruction.

It could be useful to assembly programmers and makes the permitted variants a
little more uniform.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242164 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tim Northover 2015-07-14 17:07:29 +00:00
parent 14e60218b6
commit 93398438ff
2 changed files with 5 additions and 0 deletions

View File

@ -894,6 +894,8 @@ def REVXr : OneXRegData<0b011, "rev", bswap>;
def REV32Xr : OneXRegData<0b010, "rev32",
UnOpFrag<(rotr (bswap node:$LHS), (i64 32))>>;
def : InstAlias<"rev64 $Rd, $Rn", (REVXr GPR64:$Rd, GPR64:$Rn), 0>;
// The bswap commutes with the rotr so we want a pattern for both possible
// orders.
def : Pat<(bswap (rotr GPR32:$Rn, (i64 16))), (REV16Wr GPR32:$Rn)>;

View File

@ -1489,6 +1489,9 @@ _func:
// CHECK: clz w24, wzr // encoding: [0xf8,0x13,0xc0,0x5a]
// CHECK: rev x22, xzr // encoding: [0xf6,0x0f,0xc0,0xda]
rev64 x13, x12
// CHECK: rev x13, x12 // encoding: [0x8d,0x0d,0xc0,0xda]
//------------------------------------------------------------------------------
// Data-processing (2 source)
//------------------------------------------------------------------------------