Currently we emit gathers for scalars being vectorized in the tre as
a pair of extractelement/insertelement instructions. Instead we can try
to find all required vectors and emit shuffle vector instructions
directly, improving the code and reducing compile time.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Time | Test | |
---|---|---|
140 ms | x64 debian > Flang.Driver::code-gen-rv64.f90 Script:
--
: 'RUN: at line 5'; rm -f /var/lib/buildkite-agent/builds/llvm-project/build/tools/flang/test/Driver/Output/code-gen-rv64.f90.tmp.o
|
Event Timeline
There are a very large number of changes, so older changes are hidden. Show Older Changes
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | ||
---|---|---|
9873 | Please use PoisonValue whenever possible. It seems this is just a placeholder, so it can be switched. |
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | ||
---|---|---|
9873 | Sure, thanks! |
Comment Actions
Large update.
Includes:
- Unifies all shuffle builders and shuffle demission operands.
- Generalizes emission and cost model estimation of the buildvectors/gathers.
Will be splitted into several smaller patches eventually.