diff options
author | Craig Topper <craig.topper@intel.com> | 2019-01-11 05:44:56 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2019-01-11 05:44:56 +0000 |
commit | b97885cc2eb06a29141b6ea67413f8ff17afcc10 (patch) | |
tree | 4efe991c68744b4db80a1bd1e47ee6359bfe9361 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | d458ceda24fde3bc0f2f910b80e3bd9f990af2fa (diff) | |
download | llvm-b97885cc2eb06a29141b6ea67413f8ff17afcc10.zip llvm-b97885cc2eb06a29141b6ea67413f8ff17afcc10.tar.gz llvm-b97885cc2eb06a29141b6ea67413f8ff17afcc10.tar.bz2 |
[X86] Change vXi1 extract_vector_elt lowering to be legal if the index is 0. Add DAG combine to turn scalar_to_vector+extract_vector_elt into extract_subvector.
We were lowering the last step extract_vector_elt to a bitcast+truncate. Change it to use an extract_vector_elt of index 0 instead. Add isel patterns to do the equivalent of what the bitcast would have done. Plus an isel pattern for an any_extend+extract to prevent some regressions.
Finally add a DAG combine to turn v1i1 scalar_to_vector+extract_vector_elt of 0 into an extract_subvector.
This fixes some of the regressions from D350800.
llvm-svn: 350918
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions