As proposed in https://github.com/WebAssembly/simd/pull/395 and matching the
opcodes used in V8:
https://chromium-review.googlesource.com/c/v8/v8/+/2617385/4/src/wasm/wasm-opcodes.h
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
This does not yet have i64x2 version of the instructions in https://github.com/WebAssembly/simd/pull/395 yet, right?
llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td | ||
---|---|---|
1279 | I think this is the first time we use timm in this file... Haven't we used LaneIdxN for these? The same for WIDEN_I8x16_TO_I32x4_U. |
llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td | ||
---|---|---|
1279 | Yes, this is the first use of timm. I needed to use timm instead of imm (or a LaneIdxN, which is just a restricted imm) because immarg arguments are apparently lowered to TargetConstant nodes rather than Constant nodes. This is also the first time I've used an immarg arument in one of the intrinsics, but I should definitely use them for many other intrinsics as well, and probably change LaneIdxN to be based on timm rather than imm. Since these are just prototype instructions, I am ok with them working differently from other instructions for now. |
I think this is the first time we use timm in this file... Haven't we used LaneIdxN for these? The same for WIDEN_I8x16_TO_I32x4_U.