diff options
author | Geoff Berry <gberry@codeaurora.org> | 2016-09-26 15:34:47 +0000 |
---|---|---|
committer | Geoff Berry <gberry@codeaurora.org> | 2016-09-26 15:34:47 +0000 |
commit | 256fcf975f60f51fce9fe7f5992f9e409e60db29 (patch) | |
tree | 7d2c6f1fa7ec711e852abdb192174d1bb19c7f9a /llvm/lib/Bitcode/Reader/BitstreamReader.cpp | |
parent | e45de8a5ec7ad35cb770cd2eed61c56a81982231 (diff) | |
download | bcm5719-llvm-256fcf975f60f51fce9fe7f5992f9e409e60db29.tar.gz bcm5719-llvm-256fcf975f60f51fce9fe7f5992f9e409e60db29.zip |
[AArch64] Improve add/sub/cmp isel of uxtw forms.
Don't match the UXTW extended reg forms of ADD/ADDS/SUB/SUBS if the
32-bit to 64-bit zero-extend can be done for free by taking advantage
of the 32-bit defining instruction zeroing the upper 32-bits of the X
register destination. This enables better instruction selection in a
few cases, such as:
sub x0, xzr, x8
instead of:
mov x8, xzr
sub x0, x8, w9, uxtw
madd x0, x1, x1, x8
instead of:
mul x9, x1, x1
add x0, x9, w8, uxtw
cmp x2, x8
instead of:
sub x8, x2, w8, uxtw
cmp x8, #0
add x0, x8, x1, lsl #3
instead of:
lsl x9, x1, #3
add x0, x9, w8, uxtw
Reviewers: t.p.northover, jmolloy
Subscribers: mcrosier, aemerson, llvm-commits, rengolin
Differential Revision: https://reviews.llvm.org/D24747
llvm-svn: 282413
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitstreamReader.cpp')
0 files changed, 0 insertions, 0 deletions