summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/DFAPacketizer.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2019-03-28 14:16:13 +0000
committerSanjay Patel <spatel@rotateright.com>2019-03-28 14:16:13 +0000
commit5bbf6f0bd8966c32a62527d32501d984df1b800e (patch)
treed159b9c6a4f0a52a878872205dd9262c62f1680a /llvm/lib/CodeGen/DFAPacketizer.cpp
parent699dc025a62589cfd8f2c9d2c64b4297f2dedb88 (diff)
downloadbcm5719-llvm-5bbf6f0bd8966c32a62527d32501d984df1b800e.tar.gz
bcm5719-llvm-5bbf6f0bd8966c32a62527d32501d984df1b800e.zip
[x86] avoid cmov in movmsk reduction
This is probably the least important of our movmsk problems, but I'm starting at the bottom to reduce distractions. We were creating a select_cc which bypasses the select and bitmask codegen optimizations that we have now. If we produce a compare+negate instead, we allow things like neg/sbb carry bit hacks, and in all cases we avoid a cmov. There's no partial register update danger in these sequences because we always produce the zero-register xor ahead of the 'set' if needed. There seems to be a missing fold for sext of a bool bit here: negl %ecx movslq %ecx, %rax ...but that's an independent transform. Differential Revision: https://reviews.llvm.org/D59818 llvm-svn: 357172
Diffstat (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud