[x86] Based on a long conversation between myself, Jim Grosbach, Hal
authorChandler Carruth <chandlerc@gmail.com>
Thu, 3 Jul 2014 02:11:29 +0000 (02:11 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 3 Jul 2014 02:11:29 +0000 (02:11 +0000)
commit0795d302de1e26476c07a62e768ee592ba5a30f4
tree093c4cfbf181f00533e617334aa2b20d3c5f7a7e
parent7413fefb8b183dc41041649c5777497f16a6498a
[x86] Based on a long conversation between myself, Jim Grosbach, Hal
Finkel, Eric Christopher, and a bunch of other people I'm probably
forgetting (sorry), add an option to the x86 backend to widen vectors
during type legalization rather than promote them.

This still would promote vNi1 vectors to get the masks right, but would
widen other vectors. A lot of experiments are piling up right now
showing that widening should probably be the default legalization
strategy outside of vNi1 cases, but it is very hard to test the
rammifications of that and fix bugs in widening-based legalization
without an option that enables it. I'll be checking in tests shortly
that use this option to exercise cases where widening doesn't work well
and hopefully we'll be able to switch fully to this soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212249 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h