Description[WASM SIMD] Implement primitive shuffles.
- Adds unary Reverse shuffles (swizzles): S32x2Reverse, S16x4Reverse,
S16x2Reverse, S8x8Reverse, S8x4Reverse, S8x2Reverse. Reversals are
done within the sub-vectors that prefix the opcode name, e.g. S8x2
reverses the 8 consecutive pairs in an S8x16 vector.
- Adds binary Zip (interleave) left and right half-shuffles to return a
single vector: S32x4ZipLeft, S32x4ZipRightS16x8ZipLeft, S16x8ZipRight,
S8x16ZipLeft, S8x16ZipRight.
- Adds binary Unzip (de-interleave) left and right half shuffles to return
a single vector: S32x4UnzipLeft, S32x4UnzipRight, S16x8UnzipLeft,
S16x8UnzipRight, S8x16UnzipLeft, S8x16UnzipRight.
- Adds binary Transpose left and right half shuffles to return
a single vector: S32x4TransposeLeft, S32x4TransposeRight,
S16x8TransposeLeft, S16xTransposeRight, S8x16TransposeLeft,
S8x16TransposeRight.
- Adds binary Concat (concatenate) byte shuffle: S8x16Concat #bytes to
paste two vectors together.
LOG=N
BUG=v8:6020
Review-Url: https://codereview.chromium.org/2801183002
Cr-Commit-Position: refs/heads/master@{#44734}
Committed: https://chromium.googlesource.com/v8/v8/+/5806d86208c3845b94c8da6953830d428721c112
Patch Set 1 #Patch Set 2 : All Zips and Unzips. #Patch Set 3 : Add Transpose Left, Right. #Patch Set 4 : Concat and tests. #Patch Set 5 : Rebase. #Patch Set 6 : Fix merge. #Patch Set 7 : Fix merge(2). #Patch Set 8 : Fix ARM release build. #
Total comments: 14
Patch Set 9 : Rebase. #Patch Set 10 : Add comments, remove S64x2Reverse, as it's redundant. #
Total comments: 2
Patch Set 11 : Rebase. #Patch Set 12 : Fix non-ARM build. #
Messages
Total messages: 52 (39 generated)
|