diff options
| author | Thomas Lively <tlively@google.com> | 2020-05-15 12:12:20 -0700 |
|---|---|---|
| committer | Thomas Lively <tlively@google.com> | 2020-05-15 12:12:20 -0700 |
| commit | 40af48101b1c65693dee289a960c381e0a993238 (patch) | |
| tree | 408e7a38f6ea7d161ffc92f57327fe64c6d81ce4 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 90af55d8a972b268d1b30feec8fb407ca856e110 (diff) | |
[WebAssembly] Optimize splats of bitcasted vectors
Summary:
This new custom DAG combine fixes a codegen issue with the
wasm_simd128.h intrinsics. Clang lowers the
return (v128_t)(__f32x4){__a, __a, __a, __a};
body of f32x4_splat to a splat shuffle of a bitcasted vector, as seen
in the new simd-shuffle-bitcast.ll test. The bitcast interfered with
the target-independent DAG combine that combines splat shuffles into
BUILD_VECTOR nodes, so this patch introduces a new custom DAG combine
to hoist the bitcast out of the shuffle, allowing the
target-independent combine to work as intended.
Reviewers: aheejin, dschuff
Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80021
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
