diff options
author | Craig Topper <craig.topper@intel.com> | 2017-12-14 06:49:07 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-12-14 06:49:07 +0000 |
commit | cf77203ff68d19af3b64d985ecb9110a777a4ae5 (patch) | |
tree | a47c03354350b0beba9c6393ce1f1c64b039d3fa /llvm/lib/Transforms/Utils/LoopUtils.cpp | |
parent | f01caab4b7ee9673d010c849b5a77c2489670db7 (diff) | |
download | llvm-cf77203ff68d19af3b64d985ecb9110a777a4ae5.zip llvm-cf77203ff68d19af3b64d985ecb9110a777a4ae5.tar.gz llvm-cf77203ff68d19af3b64d985ecb9110a777a4ae5.tar.bz2 |
[SelectionDAG] When legalizing the result type of CONCAT_VECTORS, take into account whether the input type also needs to be promoted.
If so go ahead and get the promoted input vector to extract from. Previously, we would create a bunch of any_extends of extract_vector_elts with illegal input type that needs to be promoted. The legalization of those extract_vector_elts would then potentially introduce a truncate. So now we have a bunch of any_extends of truncates. By legalizing both parts together we avoid creating these extra nodes.
The test changes seem to be because we were previously combining the build_vector with the any_extend before the any_extend got combined with the truncate.
llvm-svn: 320669
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions