Fixes an ISel failure when a splatted load is used more than once. The
failure was due to the hacks we were doing in ISel lowering to
preserve the original load as the operand of a LOAD_SPLAT node. The
fix is to properly lower the splatted use of the load to a separate
LOAD_SPLAT node.
Details
Details
- Reviewers
aheejin - Commits
- rG2ab1b8c1ec45: [WebAssembly] Handle multiple loads of splatted loads
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
LGTM. It's interesting that we can use MemIntrinsicNode for this purpose even if it's not an intrinsic...
(I guess we can also use MachineSDNode because we are effectively doing isel before we reach tablegen, but given that we've used it only in WebAssemblyISelDAGToDAG.cpp and we do most custom SIMD lowering in WebAssemblyISelLowering.cpp, this looks like a good trick.)