[AArch64] Implement the isTruncateFree API.
authorChad Rosier <mcrosier@codeaurora.org>
Wed, 9 Apr 2014 20:43:40 +0000 (20:43 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Wed, 9 Apr 2014 20:43:40 +0000 (20:43 +0000)
commitfe5c9cee80cea161963673083ca63cfd6d031bac
tree0b53699596c20552bf9bf06c9141e4ac4b9557a1
parente4b14ebcbd93443119efb3b7ef1b90c0e1cbcc3c
[AArch64] Implement the isTruncateFree API.

In AArch64 i64 to i32 truncate operation is a subregister access.

This allows more opportunities for LSR optmization to eliminate
variables of different types (i32 and i64).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205925 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64ISelLowering.h
test/CodeGen/AArch64/eliminate-trunc.ll [new file with mode: 0644]