diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2016-05-26 19:41:33 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2016-05-26 19:41:33 +0000 |
commit | 14aa2ad1f466d54e275ba9f1327e79ef7c8c52ce (patch) | |
tree | 3289b0c98dd257f76b3395f74d5aaca083762306 /llvm/lib/Support/PrettyStackTrace.cpp | |
parent | e6dbd902c082f16337cd42dbbff0e62404f88fc2 (diff) | |
download | llvm-14aa2ad1f466d54e275ba9f1327e79ef7c8c52ce.zip llvm-14aa2ad1f466d54e275ba9f1327e79ef7c8c52ce.tar.gz llvm-14aa2ad1f466d54e275ba9f1327e79ef7c8c52ce.tar.bz2 |
[AArch64] Generate rev16/rev32 from bswap + srl when upper bits are known zero.
Canonicalize (srl (bswap i32 x), 16) to (rotr (bswap i32 x), 16), if the high
16-bits of x are zero. Similarly, canonicalize (srl (bswap i64 x), 32) to
(rotr (bswap i64 x), 32), if the high 32-bits of x are zero.
test_rev_w_srl16: test_rev_w_srl16:
and w8, w0, #0xffff and w8, w0, #0xffff
rev w8, w8 ---> rev16 w0, w8
lsr w0, w8, #16
test_rev_x_srl32: test_rev_x_srl32:
rev x8, x8 ---> rev32 x0, x8
lsr x0, x8, #32
llvm-svn: 270896
Diffstat (limited to 'llvm/lib/Support/PrettyStackTrace.cpp')
0 files changed, 0 insertions, 0 deletions