aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-02-28 17:58:00 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-02-28 17:58:00 +0000
commit3bf15ced2b91661ac314911c1f28332da0e1c37c (patch)
tree73b480a3b1612372c3c122f9b17834e1141f18e2 /lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
parent20bd5296cec8d8d597ab9db2aca7346a88e580c8 (diff)
LegalizeIntegerTypes: Reenable the large shift with small amount optimization.
To avoid problems with zero shifts when getting the bits that move between words we use a trick: first shift the by amount-1, then do another shift by one. When amount is 0 (and size 32) we first shift by 31, then by one, instead of by 32. Also fix a latent bug that emitted the low and high words in the wrong order when shifting right. Fixes PR12113. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151637 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
0 files changed, 0 insertions, 0 deletions