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)
commit3614662adbe10c4e83338a23e020cd4874c92320
tree641fe5ea455d10bce83b862fdb92076b6522d7a6
parent81474d36a0e7415f765193f5df272522930831a8
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243576 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64InstrInfo.td
test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll
test/CodeGen/AArch64/arm64-aapcs.ll
test/CodeGen/AArch64/arm64-popcnt.ll
test/CodeGen/AArch64/bitfield.ll