AArch64: use 32-bit MOV rather than UBFX to truncate registers.
authorTim Northover <tnorthover@apple.com>
Wed, 29 Jul 2015 21:34:32 +0000 (21:34 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 29 Jul 2015 21:34:32 +0000 (21:34 +0000)
commit2a9d801fd58d2b6407662d76e95fcd21957282a6
tree80326e3ed6fb3e793fe263bfd282498fd4fa5491
parenta6f9a37d92bbecaec799e02f84d6bf2cb866e91b
AArch64: use 32-bit MOV rather than UBFX to truncate registers.

It's potentially more efficient on Cyclone, and from the optimization guides &
schedulers looks like it has no effect on Cortex-A53 or A57. In general you'd
expect a MOV to be about the most efficient instruction with its semantics,
even though the official "UXTW" alias is really a UBFX.

llvm-svn: 243576
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll
llvm/test/CodeGen/AArch64/arm64-aapcs.ll
llvm/test/CodeGen/AArch64/arm64-popcnt.ll
llvm/test/CodeGen/AArch64/bitfield.ll