aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2021-08-19 12:07:32 -0700
committerThomas Lively <tlively@google.com>2021-08-19 12:07:33 -0700
commitb69374ca58d3e5e62688efd8149417499096d8a7 (patch)
tree68ef2e10360d381929ce463d828bd9164ded6d81 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent68ab571e22e7dadf1262bba415e1365105d07a65 (diff)
downloadllvm-b69374ca58d3e5e62688efd8149417499096d8a7.zip
llvm-b69374ca58d3e5e62688efd8149417499096d8a7.tar.gz
llvm-b69374ca58d3e5e62688efd8149417499096d8a7.tar.bz2
[WebAssembly] Legalize vector types by widening
The default legalization of unsupported vector types is to promote the integers in each lane, which leads to extra sign or zero extending and masking when moving data into and out of vectors. Switch our preferred type legalization from the default to vector widening, which keeps the data in the low lanes of the vector rather than in the low bits of each lane. The unused high lanes can be ignored. Half-wide vectors are now loaded from memory into the low 64 bits of the v128 rather than spread out among the lanes. As a result, v128.load64_splat is a much more common operation, so add new patterns to support it. Differential Revision: https://reviews.llvm.org/D107502
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions