Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(626)

Issue 2800523002: [WASM SIMD] Implement packing and unpacking integer conversions. (Closed)

Created:
3 years, 8 months ago by bbudge
Modified:
3 years, 8 months ago
CC:
v8-reviews_googlegroups.com, v8-mips-ports_googlegroups.com, v8-ppc-ports_googlegroups.com, wasm-v8_google.com
Target Ref:
refs/heads/master
Project:
v8
Visibility:
Public.

Description

[WASM SIMD] Implement packing and unpacking integer conversions. - Adds WASM opcodes I32x4SConvertI16x8Low, I32x4SConvertI16x8High, I32x4UConvertI16x8Low, I32x4UConvertI16x8High, which unpack half of an I16x8 register into a whole I32x4 register, with signed or unsigned extension. Having separate Low/High opcodes works around the difficulty of having multiple output registers, which would be necessary if we unpacked the entire I16x8 register. - Adds WASM opcodes I16x8SConvertI8x16Low, I16x8SConvertI8x16High, I16x8UConvertI8x16Low, I16x8UConvertI8x16High, similarly to above. - Adds WASM opcodes I16x8SConvertI32x4, I16x8UConvertI32x4, I8x16SConvert16x8, I8x16UConvertI16x8, which pack two source registers into a single destination register with signed or unsigned saturation. These could have been separated into half operations, but this is simpler to implement with SSE, AVX, and is acceptable on ARM. It also avoids adding operations that only modify half of their destination register. - Implements these opcodes for ARM. LOG=N BUG=v8:6020 Review-Url: https://codereview.chromium.org/2800523002 Cr-Commit-Position: refs/heads/master@{#44541} Committed: https://chromium.googlesource.com/v8/v8/+/dbfc03005761b0f78ede078a00f0cc0a898fe8bd

Patch Set 1 #

Patch Set 2 : Fix stray edit, clean up some ordering of opcodes. #

Total comments: 4

Patch Set 3 : Improve code generation for pack ops. #

Patch Set 4 : Rebase. #

Patch Set 5 : Rebase. #

Patch Set 6 : Remove extraneous fn signature. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+481 lines, -48 lines) Patch
M src/compiler/arm/code-generator-arm.cc View 1 2 7 chunks +116 lines, -0 lines 0 comments Download
M src/compiler/arm/instruction-codes-arm.h View 6 chunks +12 lines, -0 lines 0 comments Download
M src/compiler/arm/instruction-scheduler-arm.cc View 1 6 chunks +13 lines, -1 line 0 comments Download
M src/compiler/arm/instruction-selector-arm.cc View 1 2 3 4 chunks +33 lines, -21 lines 0 comments Download
M src/compiler/instruction-selector.cc View 1 2 3 12 chunks +72 lines, -0 lines 0 comments Download
M src/compiler/machine-operator.h View 1 2 3 6 chunks +12 lines, -0 lines 0 comments Download
M src/compiler/machine-operator.cc View 1 2 3 5 chunks +12 lines, -0 lines 0 comments Download
M src/compiler/opcodes.h View 1 2 3 6 chunks +13 lines, -1 line 0 comments Download
M src/compiler/wasm-compiler.cc View 1 2 3 6 chunks +36 lines, -0 lines 0 comments Download
M src/wasm/wasm-opcodes.h View 1 2 3 4 5 3 chunks +13 lines, -1 line 0 comments Download
M src/wasm/wasm-opcodes.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M test/cctest/wasm/test-run-wasm-simd.cc View 1 2 3 10 chunks +143 lines, -24 lines 0 comments Download

Messages

Total messages: 38 (28 generated)
bbudge
Martyn for src/compiler/arm Benedikt for src/compiler and the rest if possible Brad for src/wasm and ...
3 years, 8 months ago (2017-04-05 00:34:54 UTC) #9
martyn.capewell
https://codereview.chromium.org/2800523002/diff/20001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (right): https://codereview.chromium.org/2800523002/diff/20001/src/compiler/arm/code-generator-arm.cc#newcode1821 src/compiler/arm/code-generator-arm.cc:1821: src1 = i.InputSimd128Register(0), Name these src0 and src1 to ...
3 years, 8 months ago (2017-04-06 14:37:43 UTC) #12
bbudge
https://codereview.chromium.org/2800523002/diff/20001/src/compiler/arm/code-generator-arm.cc File src/compiler/arm/code-generator-arm.cc (right): https://codereview.chromium.org/2800523002/diff/20001/src/compiler/arm/code-generator-arm.cc#newcode1821 src/compiler/arm/code-generator-arm.cc:1821: src1 = i.InputSimd128Register(0), On 2017/04/06 14:37:43, martyn.capewell wrote: > ...
3 years, 8 months ago (2017-04-06 18:19:32 UTC) #13
bbudge
PTAL
3 years, 8 months ago (2017-04-09 18:48:11 UTC) #18
Benedikt Meurer
compiler LGTM
3 years, 8 months ago (2017-04-10 04:10:15 UTC) #19
martyn.capewell
lgtm
3 years, 8 months ago (2017-04-10 10:13:39 UTC) #20
bbudge
-Brad +Mircea This adds some new SIMD ops to convert between the various sizes of ...
3 years, 8 months ago (2017-04-10 19:07:02 UTC) #22
Mircea Trofin
lgtm for wasm
3 years, 8 months ago (2017-04-10 19:16:38 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2800523002/100001
3 years, 8 months ago (2017-04-10 23:04:56 UTC) #35
commit-bot: I haz the power
3 years, 8 months ago (2017-04-10 23:07:39 UTC) #38
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://chromium.googlesource.com/v8/v8/+/dbfc03005761b0f78ede078a00f0cc0a898...

Powered by Google App Engine
This is Rietveld 408576698