summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineSink.cpp
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2015-06-16 06:07:24 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2015-06-16 06:07:24 +0000
commit77f0e9f662c3eef7d742ad9c7f60b31aa9037c96 (patch)
tree76d405c264cfca551e48429bd26a2d348f50c833 /llvm/lib/CodeGen/MachineSink.cpp
parente5409783d1e13f8d7ac487aa790774b5b5a95196 (diff)
downloadbcm5719-llvm-77f0e9f662c3eef7d742ad9c7f60b31aa9037c96.tar.gz
bcm5719-llvm-77f0e9f662c3eef7d742ad9c7f60b31aa9037c96.zip
X86: optimized i64 vector multiply with constant
When we multiply two 64-bit vectors, we extract lower and upper part and use the PMULUDQ instruction. When one of the operands is a constant, the upper part may be zero, we know this at compile time. Example: %a = mul <4 x i64> %b, <4 x i64> < i64 5, i64 5, i64 5, i64 5>. I'm checking the value of the upper part and prevent redundant "multiply", "shift" and "add" operations. llvm-svn: 239802
Diffstat (limited to 'llvm/lib/CodeGen/MachineSink.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud