diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-22 16:46:25 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-07-22 16:46:25 +0000 |
| commit | 820f87a72d872987a95d1e5931f1dd7656f2ec0a (patch) | |
| tree | 1d46ae62cb0fac56b5c103fd081e48c45f31423b /llvm/lib/Object/ArchiveWriter.cpp | |
| parent | c27f1b7182b41a262b8415afc03d21aa20326317 (diff) | |
| download | bcm5719-llvm-820f87a72d872987a95d1e5931f1dd7656f2ec0a.tar.gz bcm5719-llvm-820f87a72d872987a95d1e5931f1dd7656f2ec0a.zip | |
[SelectionDAG] Optimization of BITREVERSE legalization for power-of-2 integer scalar/vector types
An extension of D19978, this patch replaces the default BITREVERSE evaluation of individual bit masks+shifts with block mask+shifts when we have integer elements of power-of-2 bits in size.
After calling BSWAP to reverse the order of the constituent bytes (which typically follows a similar approach), every neighbouring 4-bits, 2-bits and finally 1-bit pairs are masked off and swapped over with shifts.
In doing so we can significantly reduce the number of operations required.
Differential Revision: https://reviews.llvm.org/D21578
llvm-svn: 276432
Diffstat (limited to 'llvm/lib/Object/ArchiveWriter.cpp')
0 files changed, 0 insertions, 0 deletions

