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/CodeGen/AsmPrinter/CodeViewDebug.cpp | |
parent | c27f1b7182b41a262b8415afc03d21aa20326317 (diff) | |
download | llvm-820f87a72d872987a95d1e5931f1dd7656f2ec0a.zip llvm-820f87a72d872987a95d1e5931f1dd7656f2ec0a.tar.gz llvm-820f87a72d872987a95d1e5931f1dd7656f2ec0a.tar.bz2 |
[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/CodeGen/AsmPrinter/CodeViewDebug.cpp')
0 files changed, 0 insertions, 0 deletions