diff options
author | Luke Lau <luke@igalia.com> | 2024-03-22 07:08:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-22 07:08:51 +0800 |
commit | 06d245242e3e24cd4558f545fb5ceba0582c4f03 (patch) | |
tree | 7c521b3b2b6e5ab1440b325d00f23b7001169fef /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | dc74bf7a5412df82223f7062d9a6b814abbfca45 (diff) | |
download | llvm-06d245242e3e24cd4558f545fb5ceba0582c4f03.zip llvm-06d245242e3e24cd4558f545fb5ceba0582c4f03.tar.gz llvm-06d245242e3e24cd4558f545fb5ceba0582c4f03.tar.bz2 |
[RISCV] Recursively split concat_vector into smaller LMULs when lowering (#85825)
This is a reimplementation of the combine added in #83035 but as a
lowering instead of a combine, so we don't regress the test case added
in e59f120e3a14ccdc55fcb7be996efaa768daabe0 by interfering with the
strided load combine
Previously the combine had to concatenate the split vectors with
insert_subvector instead of concat_vectors to prevent an infinite
combine loop. And the reasoning behind keeping it as a combine was
because if we emitted the insert_subvector during lowering then we
didn't fold away inserts of undef subvectors.
However it turns out we can avoid this if we just do this in lowering
and select a concat_vector directly, since we get the undef folding for
free with `DAG.getNode(ISD::CONCAT_VECTOR, ...)` via foldCONCAT_VECTORS.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions