summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/DataExtractor.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-09-29 09:57:07 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-09-29 09:57:07 +0000
commit6cbf43167bf33689e8b02920cde6758f8dba8d8d (patch)
tree3d84d1cfbea37efed53fd83ddf4d15e079e28b18 /llvm/lib/Support/DataExtractor.cpp
parent3f11c0d79c897e16f190df8ca397ec8c1daf0aaa (diff)
downloadbcm5719-llvm-6cbf43167bf33689e8b02920cde6758f8dba8d8d.tar.gz
bcm5719-llvm-6cbf43167bf33689e8b02920cde6758f8dba8d8d.zip
[x86] Make the new vector shuffle lowering lower blends as VSELECT
nodes, and rely exclusively on its logic. This removes a ton of duplication from the blend lowering and centralizes it in one place. One downside is that it requires a bunch of hacks to make this work with the current legalization framework. We have to manually speculate one aspect of legalizing VSELECT nodes to get everything to work nicely because the existing legalization framework isn't *actually* bottom-up. The other grossness is that we somewhat duplicate the analysis of constant blends. I'm on the fence here. If reviewers thing this would look better with VSELECT when it has constant operands dumping over tho VECTOR_SHUFFLE, we could go that way. But it would be a substantial change because currently all of the actual blend instructions are matched via patterns in the TD files based around VSELECT nodes (despite them not being perfect fits for that). Suggestions welcome, but at least this removes the rampant duplication in the backend. llvm-svn: 218600
Diffstat (limited to 'llvm/lib/Support/DataExtractor.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud