diff options
author | Owen Anderson <resistor@mac.com> | 2010-09-21 18:41:19 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-09-21 18:41:19 +0000 |
commit | f4b1a5bdc48bb8ffa8574e949a227380d5ff5577 (patch) | |
tree | 775a4d81414f8b791c21c1f37f78906a3a1cd6a0 /llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | |
parent | f7a8e93b76010b5715671324afb519d8418d381a (diff) | |
download | bcm5719-llvm-f4b1a5bdc48bb8ffa8574e949a227380d5ff5577.tar.gz bcm5719-llvm-f4b1a5bdc48bb8ffa8574e949a227380d5ff5577.zip |
When adding the carry bit to another value on X86, exploit the fact that the carry-materialization
(sbbl x, x) sets the registers to 0 or ~0. Combined with two's complement arithmetic, we can fold
the intermediate AND and the ADD into a single SUB.
This fixes <rdar://problem/8449754>.
llvm-svn: 114460
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
0 files changed, 0 insertions, 0 deletions