Issue 6020 in v8: [wasm] Implement WebAssembly SIMD prototype

187 views
Skip to first unread message

bradnel… via monorail

unread,
Feb 26, 2017, 11:36:23 PM2/26/17
to v8-re...@googlegroups.com
Status: Assigned
Owner: bbu...@chromium.org
CC: sethth...@chromium.org, asee...@chromium.org, gde...@chromium.org, bradn...@chromium.org, tit...@chromium.org
Components: WebAssembly

New issue 6020 by bradn...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020

WebAssembly implementors are exploring use SIMD.js as the basis for WebAssembly SIMD.

This issue will track the overall implementation of a prototype of WebAssembly SIMD.


--
You received this message because:
1. The project was configured to send all issue notifications to this address

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

bradnel… via monorail

unread,
Feb 26, 2017, 11:38:09 PM2/26/17
to v8-re...@googlegroups.com

Comment #1 on issue 6020 by bradn...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c1


WebAssembly implementors are exploring use SIMD.js as the basis for WebAssembly SIMD.

This issue will track the overall implementation of a prototype of WebAssembly SIMD.

This issue continues from some of the work covered in the old SIMD.js tracking issue:
https://bugs.chromium.org/p/v8/issues/detail?id=4124

tallty… via monorail

unread,
Feb 27, 2017, 10:39:08 AM2/27/17
to v8-re...@googlegroups.com

Comment #2 on issue 6020 by tallty...@gmail.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c2

Does this mean the standard JavaScript API will not have access to the SIMD API?
It would be great to see a release of what we have before changing directions.
We would like to use SIMD.js for the bases of our projects also.

bradnel… via monorail

unread,
Feb 27, 2017, 11:46:37 AM2/27/17
to v8-re...@googlegroups.com

Comment #3 on issue 6020 by bradn...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c3

@talltyler
That's correct, you would only be able to use calls into wasm functions to indirectly handle SIMD types from JS (or pass them around in arraybuffers and access individual elements).
Most SIMD.js code we were able to find with performance wins is a variant on asm.js code, which requires carefully structured JS code, and which almost entirely comes from similar compilers to the sort used to generate wasm code.

The API surface for SIMD.js is enormous. Dropping it shaved 10% off V8's code size. And mind you this was just for the raw ability to implement the slow path for the API surface (no faster code than if you'd just done a polyfill).
Our initial plan for optimization had been to focus specifically on the proposed SIMD.js extension to asm.js. Ironically one unsettled aspect of that proposal is whether you can even call in and out of the module with SIMD types, which argues the feature was never really well structured to interact tightly with JS.

Realistically to get a meaningful win from SIMD, applications usually need to deal with whole arraybuffers full of SIMD values, rather than passing them around individually.
There are ways to optimize general SIMD.js mixed in, but lots of performance cliffs abound. That said, there are a few places where V8 uses a SIMD instruction here and there for non-explicit SIMD code.

Passing the values around might make sense as an ergonomic affordance, but would probably be better done as a part of one of the JS value type proposals floating around. Something similar is true for int64 values, which wasm can handle directly, but can't export directly to JS.

Out of curiosity, what sort of application were you considering it for?

tallty… via monorail

unread,
Feb 27, 2017, 2:50:45 PM2/27/17
to v8-re...@googlegroups.com

Comment #4 on issue 6020 by tallty...@gmail.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c4

I've been working on a graphics engine in JavaScript that focuses on effects/filters on layered mostly 2d, images, video and text. Some of my code utilizes WebGL but other stuff is often CPU bound math operations on image data objects. I also decode a few file types rather than using the built in stuff so that I can control when and how things are drawn which also adds better compatibility between environments (all of my code also runs in Node and in native mobile apps). I also have been adding more vector features with large sets of path information that I would like to get deeper into enabling computational transformation of the paths.

I'm pretty sure a few things I have written would run faster with access to SIMD but I'm not ready to rewrite everything I am doing in WebAssembly or asm.js today. I've been watching the old SIMD ticket for over a year in anticipation of it one day making it into JavaScript. If it isn't going to ever happen and you are suggesting larger projects move away from being written in JavaScript and target WebAssembly first it would be great to know that and what kind of schedule you would suggest people like me should anticipate for this switch.

The last thing I heard was WebAssembly was going to be a more efficient transport and parsing but it wasn't going to speed up the computation of anything. I also remember hearing that the V8 team was trying to not focus ASM.js and was instead focusing on more general performance outside of the structure of ASM.js optimized syntax. Based on my understanding of what you are saying it looks like I have old information.

bugdro… via monorail

unread,
Mar 1, 2017, 6:32:34 PM3/1/17
to v8-re...@googlegroups.com

Comment #5 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c5

The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/f3d26d3d552fb3408f0a94e415c3f4efc0a76dfb

commit f3d26d3d552fb3408f0a94e415c3f4efc0a76dfb
Author: bbudge <bbu...@chromium.org>
Date: Wed Mar 01 23:31:47 2017

[WASM] Fix failing Wasm SIMD F32x4 tests.
- Perform lane checks using FP compare instead of reinterpret casts. 0 and -0
will be different under I32 compare.
- Some arithmetic operations can generate NaN results, such as adding -Inf
and +Inf. Skip these tests until we have a way to do more sophisticated
FP comparisons in the SIMD tests.
- Eliminate a redundant F32x4 parameter for FP SIMD vector checking. We will only have this one FP type.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2594043002
Cr-Original-Commit-Position: refs/heads/master@{#42154}
Committed: https://chromium.googlesource.com/v8/v8/+/5560bbb498252334595a39bb5f313ac8eb82cfe1
Review-Url: https://codereview.chromium.org/2594043002
Cr-Commit-Position: refs/heads/master@{#43528}

[modify] https://crrev.com/f3d26d3d552fb3408f0a94e415c3f4efc0a76dfb/test/cctest/cctest.status
[modify] https://crrev.com/f3d26d3d552fb3408f0a94e415c3f4efc0a76dfb/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 2, 2017, 2:51:28 PM3/2/17
to v8-re...@googlegroups.com

Comment #6 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c6


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/386e5a1149dcf5d2834773604c6934c0e797ba0c

commit 386e5a1149dcf5d2834773604c6934c0e797ba0c
Author: bbudge <bbu...@chromium.org>
Date: Thu Mar 02 19:50:33 2017

Implement remaining Boolean SIMD operations on ARM.

- Implements Select instructions using a single ARM vbsl instruction.
- Renames boolean machine operators to match renamed S1xN machine types.
- Implements S1xN vector logical ops, AND, OR, XOR, NOT for ARM.
- Implements S1xN AnyTrue, AllTrue ops for ARM.
- Eliminates unused SIMD op categories in opcodes.h.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2711863002
Cr-Commit-Position: refs/heads/master@{#43556}

[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/arm/assembler-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/arm/assembler-arm.h
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/arm/disasm-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/arm/macro-assembler-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/arm/macro-assembler-arm.h
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/arm/simulator-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/arm/simulator-arm.h
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/instruction-selector.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/machine-operator.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/machine-operator.h
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/opcodes.h
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/test/cctest/test-assembler-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/test/cctest/test-disasm-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/test/cctest/test-macro-assembler-arm.cc
[modify] https://crrev.com/386e5a1149dcf5d2834773604c6934c0e797ba0c/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 2, 2017, 9:05:02 PM3/2/17
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Mar 2, 2017, 9:32:52 PM3/2/17
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Mar 7, 2017, 12:52:21 PM3/7/17
to v8-re...@googlegroups.com

Comment #9 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c9


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/b23f6a462e02662f1c6c13b890b5b62967410a4c

commit b23f6a462e02662f1c6c13b890b5b62967410a4c
Author: bbudge <bbu...@chromium.org>
Date: Tue Mar 07 17:52:08 2017

[WASM] Fix failing F32x4 Equal, NotEqual tests.
- Fix typo, compare operand diff should be a float.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2734173003
Cr-Commit-Position: refs/heads/master@{#43651}

[modify] https://crrev.com/b23f6a462e02662f1c6c13b890b5b62967410a4c/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 7, 2017, 7:02:32 PM3/7/17
to v8-re...@googlegroups.com

Comment #10 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c10


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/78382d72729cf68143a2b83f784e5910ec331803

commit 78382d72729cf68143a2b83f784e5910ec331803
Author: bbudge <bbu...@chromium.org>
Date: Wed Mar 08 00:01:36 2017

[WASM] Implement remaining F32x4 operations for ARM.

- Implements Float32x4 Mul, Min, Max for ARM.
- Implements Float32x4 relational ops for ARM.
- Implements reciprocal, reciprocal square root estimate/refinement ops for ARM.
- Reorganizes tests to eliminate need for specialized float ref fns in tests.
- Rephrases Gt, Ge in terms of Lt, Le, and eliminates the redundant machine
operators.
- Renames test-run-wasm-simd test names to match instructions.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2729943002
Cr-Commit-Position: refs/heads/master@{#43658}

[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/instruction-selector.cc
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/machine-operator.cc
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/machine-operator.h
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/opcodes.h
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/78382d72729cf68143a2b83f784e5910ec331803/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 8, 2017, 7:08:12 PM3/8/17
to v8-re...@googlegroups.com

Comment #11 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c11


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/cbfd9f5ede27717824727ae6f5bcc8c104b5f24a

commit cbfd9f5ede27717824727ae6f5bcc8c104b5f24a
Author: bbudge <bbu...@chromium.org>
Date: Thu Mar 09 00:07:03 2017

[WASM] Make F32x4 Tests pass on ARM hardware.
- Changes input filtering to test NaNs, but skip very large or very
small inputs, which may cause imprecision on some platforms.
- Changes expected result filtering to only skip NaNs.

LOG=N
BUG=6020

Review-Url: https://codereview.chromium.org/2738703006
Cr-Commit-Position: refs/heads/master@{#43681}

[modify] https://crrev.com/cbfd9f5ede27717824727ae6f5bcc8c104b5f24a/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 14, 2017, 12:29:19 PM3/14/17
to v8-re...@googlegroups.com

Comment #12 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c12


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/a75f7cd344ea14ec65d80a3138823e0b12170991

commit a75f7cd344ea14ec65d80a3138823e0b12170991
Author: bbudge <bbu...@chromium.org>
Date: Tue Mar 14 16:28:45 2017

[ARM] Implement more NEON permutation instructions.
- Implements vuzp, vtrn instructions for q-registers.
- Refactors vmvn, vswp to use common unary op helper fn.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2739033002
Cr-Commit-Position: refs/heads/master@{#43795}

[modify] https://crrev.com/a75f7cd344ea14ec65d80a3138823e0b12170991/src/arm/assembler-arm.cc
[modify] https://crrev.com/a75f7cd344ea14ec65d80a3138823e0b12170991/src/arm/assembler-arm.h
[modify] https://crrev.com/a75f7cd344ea14ec65d80a3138823e0b12170991/src/arm/disasm-arm.cc
[modify] https://crrev.com/a75f7cd344ea14ec65d80a3138823e0b12170991/src/arm/simulator-arm.cc
[modify] https://crrev.com/a75f7cd344ea14ec65d80a3138823e0b12170991/test/cctest/test-assembler-arm.cc
[modify] https://crrev.com/a75f7cd344ea14ec65d80a3138823e0b12170991/test/cctest/test-disasm-arm.cc

bugdro… via monorail

unread,
Mar 15, 2017, 7:36:01 PM3/15/17
to v8-re...@googlegroups.com

Comment #13 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c13


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/365492f17e11ee2cfcd0c59acaaf3af13d8de581

commit 365492f17e11ee2cfcd0c59acaaf3af13d8de581
Author: bbudge <bbu...@chromium.org>
Date: Wed Mar 15 23:34:53 2017

[WASM] Implement Simd128 Load/Store on ARM.
- Adds new load/store opcodes (0xc0, 0xc1) for S128 type.
- Implements these for ARM.
- Enables more WASM SIMD tests, and adds new LoadStoreLoad test.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2745853002
Cr-Commit-Position: refs/heads/master@{#43841}

[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/src/wasm/function-body-decoder.cc
[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/365492f17e11ee2cfcd0c59acaaf3af13d8de581/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 16, 2017, 10:07:55 AM3/16/17
to v8-re...@googlegroups.com

Comment #14 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c14


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/11f69171c39af1765ed59c03f905399fb76d1058

commit 11f69171c39af1765ed59c03f905399fb76d1058
Author: bbudge <bbu...@chromium.org>
Date: Thu Mar 16 14:06:49 2017

[WASM] Fix SIMD test that fails on ARM hardware.
- Change test to avoid adding denormalized numbers. This flushes to
zero on ARM hardware when using Neon.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2754543007
Cr-Commit-Position: refs/heads/master@{#43864}

[modify] https://crrev.com/11f69171c39af1765ed59c03f905399fb76d1058/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 17, 2017, 4:46:47 PM3/17/17
to v8-re...@googlegroups.com

Comment #15 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c15


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/931714675b3ac323d7121e275c4fe7ff32f59eec

commit 931714675b3ac323d7121e275c4fe7ff32f59eec
Author: aseemgarg <asee...@chromium.org>
Date: Fri Mar 17 20:46:04 2017

[wasm] re-enable simd-scalar-lowering tests

R=bbu...@chromium.org
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2754393002
Cr-Commit-Position: refs/heads/master@{#43918}

[modify] https://crrev.com/931714675b3ac323d7121e275c4fe7ff32f59eec/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 17, 2017, 6:07:26 PM3/17/17
to v8-re...@googlegroups.com

Comment #16 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c16


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/2bcd3cbb63cfd8e306799f2c8c2ccec7a9262cf1

commit 2bcd3cbb63cfd8e306799f2c8c2ccec7a9262cf1
Author: aseemgarg <asee...@chromium.org>
Date: Fri Mar 17 22:06:25 2017

Revert of [wasm] re-enable simd-scalar-lowering tests (patchset #1 id:1 of https://codereview.chromium.org/2754393002/ )

Reason for revert:
Seems like this is breaking V8 Linux - arm64 - sim - MSAN

Original issue's description:

> [wasm] re-enable simd-scalar-lowering tests
>
> R=bbu...@chromium.org
> BUG=v8:6020
>
> Review-Url: https://codereview.chromium.org/2754393002
> Cr-Commit-Position: refs/heads/master@{#43918}
> Committed: https://chromium.googlesource.com/v8/v8/+/931714675b3ac323d7121e275c4fe7ff32f59eec

TBR=bbu...@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2749023010
Cr-Commit-Position: refs/heads/master@{#43919}

[modify] https://crrev.com/2bcd3cbb63cfd8e306799f2c8c2ccec7a9262cf1/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Mar 24, 2017, 1:42:11 PM3/24/17
to v8-re...@googlegroups.com

Comment #18 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c18


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/6839e7ac083fca721e9954ac545d7536615fd859

commit 6839e7ac083fca721e9954ac545d7536615fd859
Author: bbudge <bbu...@chromium.org>
Date: Fri Mar 24 17:40:49 2017

[ARM] Make Simd 128 bit load/store more like existing load/store.
- Renames kArmSimd128Load, kArmSimd128Store to kArmVld1S128,
kArmVst1S128
- Handles the unaligned load/store cases.
LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2769083003
Cr-Commit-Position: refs/heads/master@{#44117}

[modify] https://crrev.com/6839e7ac083fca721e9954ac545d7536615fd859/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/6839e7ac083fca721e9954ac545d7536615fd859/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/6839e7ac083fca721e9954ac545d7536615fd859/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/6839e7ac083fca721e9954ac545d7536615fd859/src/compiler/arm/instruction-selector-arm.cc

bugdro… via monorail

unread,
Mar 27, 2017, 2:24:42 PM3/27/17
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Mar 29, 2017, 1:03:12 PM3/29/17
to v8-re...@googlegroups.com

Comment #20 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c20


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/6234fda3c9dcf223a243172d03ea1588f9cfe28d

commit 6234fda3c9dcf223a243172d03ea1588f9cfe28d
Author: gdeepti <gde...@chromium.org>
Date: Wed Mar 29 17:02:17 2017

[wasm] Make Opcode names consistent across architectures, implementations
- Fix opcode names to be consistent with opcodes as in wasm-opcodes.h
- Fix Ordering of Ops, inconsistencies

BUG=v8:6020

Review-Url: https://codereview.chromium.org/2776753004
Cr-Commit-Position: refs/heads/master@{#44239}

[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/ia32/instruction-codes-ia32.h
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/ia32/instruction-scheduler-ia32.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/ia32/instruction-selector-ia32.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/instruction-selector.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/machine-graph-verifier.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/machine-operator.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/machine-operator.h
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/opcodes.h
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/simd-scalar-lowering.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/wasm-compiler.h
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/x64/code-generator-x64.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/x64/instruction-codes-x64.h
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/x64/instruction-scheduler-x64.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/compiler/x64/instruction-selector-x64.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/src/wasm/function-body-decoder.cc
[modify] https://crrev.com/6234fda3c9dcf223a243172d03ea1588f9cfe28d/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Apr 10, 2017, 1:57:25 PM4/10/17
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Apr 10, 2017, 4:01:04 PM4/10/17
to v8-re...@googlegroups.com

Comment #22 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c22


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/0ce8543e763c33bf0d40cce870c7cdc69361ce35

commit 0ce8543e763c33bf0d40cce870c7cdc69361ce35
Author: bbudge <bbu...@chromium.org>
Date: Mon Apr 10 20:00:16 2017

Revert of [ARM] Implement D-register versions of vzip, vuzp, and vtrn. (patchset #4 id:60001 of https://codereview.chromium.org/2797923006/ )

Reason for revert:
Breaks:
http://builders/V8%20Arm%20-%20debug/builds/2751

Original issue's description:

> [ARM] Implement D-register versions of vzip, vuzp, and vtrn.
>
> LOG=N
> BUG=v8:6020
>
> Review-Url: https://codereview.chromium.org/2797923006
> Cr-Commit-Position: refs/heads/master@{#44536}

# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:6020

bugdro… via monorail

unread,
Apr 10, 2017, 5:41:25 PM4/10/17
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Apr 10, 2017, 7:08:02 PM4/10/17
to v8-re...@googlegroups.com

Comment #24 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c24


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/dbfc03005761b0f78ede078a00f0cc0a898fe8bd

commit dbfc03005761b0f78ede078a00f0cc0a898fe8bd
Author: bbudge <bbu...@chromium.org>
Date: Mon Apr 10 23:07:30 2017

[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}

[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/instruction-selector.cc
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/machine-operator.cc
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/machine-operator.h
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/opcodes.h
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/dbfc03005761b0f78ede078a00f0cc0a898fe8bd/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Apr 18, 2017, 10:31:25 AM4/18/17
to v8-re...@googlegroups.com

Comment #25 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c25


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/39f8e0c74a8e702d70c7fedb206ec385be80d0e7

commit 39f8e0c74a8e702d70c7fedb206ec385be80d0e7
Author: bbudge <bbu...@chromium.org>
Date: Tue Apr 18 14:30:19 2017

[ARM] Assembler should assemble vzip/vuzp.32 as vtrn.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2808233002
Cr-Commit-Position: refs/heads/master@{#44690}

[modify] https://crrev.com/39f8e0c74a8e702d70c7fedb206ec385be80d0e7/src/arm/assembler-arm.cc

bugdro… via monorail

unread,
Apr 18, 2017, 7:24:19 PM4/18/17
to v8-re...@googlegroups.com

Comment #26 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c26


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/635eea88e58f264f7b2b3bfb32e0eca6ec2e8145

commit 635eea88e58f264f7b2b3bfb32e0eca6ec2e8145
Author: gdeepti <gde...@chromium.org>
Date: Tue Apr 18 23:23:12 2017

[wasm] Implement first set of SIMD I8x16 ops
- I8x16Splat, I8x16ExtractLane, I8x16ReplaceLane
- Binops: I8x16Add, I8x16AddSaturateS, I8x16Sub, I8x16SubSaturateS, I8x16MinS,
I8x16MaxS, I8x16AddSaturateU, I8x16SubSaturateU, I8x16MinU, I8x16MaxU
- Compare ops: I8x16Eq, I8x16Ne

BUG=v8:6020

R=bbu...@chromium.org, bme...@chromium.org

Review-Url: https://codereview.chromium.org/2829483002
Cr-Commit-Position: refs/heads/master@{#44706}

[modify] https://crrev.com/635eea88e58f264f7b2b3bfb32e0eca6ec2e8145/src/compiler/instruction-selector.cc
[modify] https://crrev.com/635eea88e58f264f7b2b3bfb32e0eca6ec2e8145/src/compiler/x64/code-generator-x64.cc
[modify] https://crrev.com/635eea88e58f264f7b2b3bfb32e0eca6ec2e8145/src/compiler/x64/instruction-codes-x64.h
[modify] https://crrev.com/635eea88e58f264f7b2b3bfb32e0eca6ec2e8145/src/compiler/x64/instruction-scheduler-x64.cc
[modify] https://crrev.com/635eea88e58f264f7b2b3bfb32e0eca6ec2e8145/src/compiler/x64/instruction-selector-x64.cc
[modify] https://crrev.com/635eea88e58f264f7b2b3bfb32e0eca6ec2e8145/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Apr 19, 2017, 12:57:29 PM4/19/17
to v8-re...@googlegroups.com

Comment #27 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c27


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/246a7bdd26198ea38d174797160631c6904966b7

commit 246a7bdd26198ea38d174797160631c6904966b7
Author: bbudge <bbu...@chromium.org>
Date: Wed Apr 19 16:56:42 2017

[ARM] Reserve scratch q-register.
- Reserves q15 (d30,d31) as a scratch register for NEON operations.
- Rewrites CodeGenerator::AssembleSwap to use it.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2827743002
Cr-Commit-Position: refs/heads/master@{#44728}

[modify] https://crrev.com/246a7bdd26198ea38d174797160631c6904966b7/src/arm/assembler-arm.h
[modify] https://crrev.com/246a7bdd26198ea38d174797160631c6904966b7/src/arm/deoptimizer-arm.cc
[modify] https://crrev.com/246a7bdd26198ea38d174797160631c6904966b7/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/246a7bdd26198ea38d174797160631c6904966b7/src/register-configuration.cc

bugdro… via monorail

unread,
Apr 19, 2017, 6:19:11 PM4/19/17
to v8-re...@googlegroups.com

Comment #28 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c28


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/5806d86208c3845b94c8da6953830d428721c112

commit 5806d86208c3845b94c8da6953830d428721c112
Author: bbudge <bbu...@chromium.org>
Date: Wed Apr 19 22:18:06 2017

[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}

[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/arm/macro-assembler-arm.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/arm/macro-assembler-arm.h
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/instruction-selector.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/machine-operator.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/machine-operator.h
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/opcodes.h
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/compiler/wasm-compiler.h
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/wasm/function-body-decoder.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/test/cctest/test-macro-assembler-arm.cc
[modify] https://crrev.com/5806d86208c3845b94c8da6953830d428721c112/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Apr 21, 2017, 5:35:29 PM4/21/17
to v8-re...@googlegroups.com

Comment #29 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c29


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/dddfcfd0a965199bdc41954d88f6e57e6cae17e1

commit dddfcfd0a965199bdc41954d88f6e57e6cae17e1
Author: bbudge <bbu...@chromium.org>
Date: Fri Apr 21 21:34:43 2017

[WASM SIMD] Remove opcodes that are slow on some platforms.
These can be synthesized from existing operations and scheduled for
better performance than if we have to generate blocks of instructions
that take many cycles to complete.
- Remove F32x4RecipRefine, F32x4RecipSqrtRefine. Clients are better off
synthesizing these from splats, multiplies and adds.
- Remove F32x4Div, F32x4Sqrt, F32x4MinNum, F32x4MaxNum. Clients are
better off synthesizing these or using the reciprocal approximations,
possibly with a refinement step.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2827143002
Cr-Commit-Position: refs/heads/master@{#44784}

[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/instruction-selector.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/machine-operator.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/machine-operator.h
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/mips/code-generator-mips.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/mips/instruction-codes-mips.h
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/mips/instruction-selector-mips.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/mips64/code-generator-mips64.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/mips64/instruction-codes-mips64.h
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/mips64/instruction-selector-mips64.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/opcodes.h
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/simd-scalar-lowering.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/dddfcfd0a965199bdc41954d88f6e57e6cae17e1/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Apr 24, 2017, 2:54:45 PM4/24/17
to v8-re...@googlegroups.com

Comment #30 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c30


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/a71c338d9e24e55b47125108a0fce754076751d0

commit a71c338d9e24e55b47125108a0fce754076751d0
Author: bbudge <bbu...@chromium.org>
Date: Mon Apr 24 18:53:16 2017

[WASM SIMD] Implement horizontal add for float and integer types.
- Adds new F32x4AddHoriz, I32x4AddHoriz, etc. to WASM opcodes.
- Implements them for ARM.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2804883008
Cr-Commit-Position: refs/heads/master@{#44812}

[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/arm/assembler-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/arm/assembler-arm.h
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/arm/constants-arm.h
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/arm/disasm-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/arm/simulator-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/instruction-selector.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/machine-operator.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/machine-operator.h
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/opcodes.h
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/test/cctest/test-assembler-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/test/cctest/test-disasm-arm.cc
[modify] https://crrev.com/a71c338d9e24e55b47125108a0fce754076751d0/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
May 1, 2017, 5:30:40 PM5/1/17
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
May 1, 2017, 8:07:00 PM5/1/17
to v8-re...@googlegroups.com

Comment #32 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c32


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5

commit 4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5
Author: gdeepti <gde...@chromium.org>
Date: Tue May 02 00:05:53 2017

[wasm] Implement Generic S128 Load/Store, logical ops and Horizontal add
- Ops: S128Load, S128Store, S128And, S128Or, S128Xor, S128Not, I32x4AddHoriz, I16x8AddHoriz
- Add x64 assembler support for - phaddd, phaddw, pand, por
- Enable tests for Globals, other tests applicable to x64 apart from tests for implemented ops

BUG=v8:6020

R=bbu...@chromium.org, bme...@chromium.org, zvi.ra...@intel.com

Review-Url: https://codereview.chromium.org/2849463003
Cr-Commit-Position: refs/heads/master@{#45005}

[modify] https://crrev.com/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5/src/compiler/instruction-selector.cc
[modify] https://crrev.com/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5/src/compiler/x64/code-generator-x64.cc
[modify] https://crrev.com/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5/src/compiler/x64/instruction-codes-x64.h
[modify] https://crrev.com/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5/src/compiler/x64/instruction-scheduler-x64.cc
[modify] https://crrev.com/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5/src/compiler/x64/instruction-selector-x64.cc
[modify] https://crrev.com/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5/src/x64/sse-instr.h
[modify] https://crrev.com/4a604f2ffe81d1a32fa31f9be3f39a68d57eadb5/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
May 4, 2017, 12:51:55 PM5/4/17
to v8-re...@googlegroups.com

Comment #33 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c33


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/0cd0fa3b98a06126681f4ce091555a0aa2e35859

commit 0cd0fa3b98a06126681f4ce091555a0aa2e35859
Author: bbudge <bbu...@chromium.org>
Date: Thu May 04 16:50:51 2017

[WASM SIMD] Replace primitive shuffles with general Shuffle.
- Removes primitive shuffle opcodes.
- Adds Shuffle opcode for S32x4, S16x8, S8x16.
- Adds code to ARM instruction selector to pick best opcodes for some
common shuffle patterns.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2847663005
Cr-Commit-Position: refs/heads/master@{#45104}

[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/api.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/compiler/instruction-selector.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/compiler/machine-operator.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/compiler/machine-operator.h
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/compiler/opcodes.h
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/compiler/wasm-compiler.h
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/wasm/function-body-decoder.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/src/wasm/wasm-text.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/test/cctest/wasm/test-run-wasm-simd.cc
[modify] https://crrev.com/0cd0fa3b98a06126681f4ce091555a0aa2e35859/test/unittests/wasm/function-body-decoder-unittest.cc

bugdro… via monorail

unread,
May 9, 2017, 5:05:06 PM5/9/17
to v8-re...@googlegroups.com

Comment #34 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c34


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/a459f188fab8e026cc7f19bb5eacd01b12699da1

commit a459f188fab8e026cc7f19bb5eacd01b12699da1
Author: bbudge <bbu...@chromium.org>
Date: Tue May 09 21:04:27 2017

[ARM] Implement irregular vector shuffles for SIMD.
- S32x4Shuffle by decomposing into s-register moves if no patterns match.
- S16x8Shuffle, S8x16Shuffle implemented with vtbl if no patterns match.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2856363003
Cr-Commit-Position: refs/heads/master@{#45210}

[modify] https://crrev.com/a459f188fab8e026cc7f19bb5eacd01b12699da1/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/a459f188fab8e026cc7f19bb5eacd01b12699da1/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/a459f188fab8e026cc7f19bb5eacd01b12699da1/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/a459f188fab8e026cc7f19bb5eacd01b12699da1/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/a459f188fab8e026cc7f19bb5eacd01b12699da1/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
May 16, 2017, 4:38:25 PM5/16/17
to v8-re...@googlegroups.com

Comment #35 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c35


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/b3acc272654c08d7c1bb875496b84667349b0288

commit b3acc272654c08d7c1bb875496b84667349b0288
Author: bbudge <bbu...@chromium.org>
Date: Tue May 16 20:37:16 2017

[ARM] Improve VFP register moves.
- Adds vdup.<size> Dd/Qd, Dm[i] instruction.
- Adds vsli, vsri instructions.
- Changes VMovExtended to use these to avoid moves to core registers.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2868603002
Cr-Commit-Position: refs/heads/master@{#45351}

[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/arm/assembler-arm.cc
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/arm/assembler-arm.h
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/arm/constants-arm.h
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/arm/disasm-arm.cc
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/arm/macro-assembler-arm.cc
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/arm/macro-assembler-arm.h
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/arm/simulator-arm.cc
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/test/cctest/test-assembler-arm.cc
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/test/cctest/test-disasm-arm.cc
[modify] https://crrev.com/b3acc272654c08d7c1bb875496b84667349b0288/test/cctest/test-macro-assembler-arm.cc

bugdro… via monorail

unread,
May 21, 2017, 6:41:30 PM5/21/17
to v8-re...@googlegroups.com

Comment #36 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c36


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/eeefc74a1189aeed19228f728b60b0f187b5b1bd

commit eeefc74a1189aeed19228f728b60b0f187b5b1bd
Author: gdeepti <gde...@chromium.org>
Date: Sun May 21 22:40:46 2017

[wasm] Swap the implementation of SIMD compare ops using Gt/Ge insteas of Lt/Le

Currently SIMD integer comparison ops are implemented using Lt/Le, this is
sub-optimal on Intel, because all compares are done using pcmpgt(d/w/b) that
clobber the destination register, and will need additional instructions to
when using Lt/Le as the base implementation. This CL proposes moving to Gt/Ge
as the underlying implementation as this will only require swapping operands
on MIPS and is consistent with x86/ARM instructions.

BUG=v8:6020

R=bbu...@chromium.org, bme...@chromium.org, bradn...@chromium.org

Review-Url: https://codereview.chromium.org/2874403002
Cr-Commit-Position: refs/heads/master@{#45440}

[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/instruction-selector.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/machine-operator.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/machine-operator.h
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/mips/code-generator-mips.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/mips/instruction-codes-mips.h
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/mips/instruction-selector-mips.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/mips64/code-generator-mips64.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/mips64/instruction-codes-mips64.h
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/mips64/instruction-selector-mips64.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/eeefc74a1189aeed19228f728b60b0f187b5b1bd/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 8, 2017, 4:55:04 PM6/8/17
to v8-re...@googlegroups.com

Comment #37 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c37


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/381f7da02c4d8a641f329d23e06f99d7c75d5643

commit 381f7da02c4d8a641f329d23e06f99d7c75d5643
Author: bbudge <bbu...@chromium.org>
Date: Thu Jun 08 20:54:32 2017

[WASM] Eliminate SIMD boolean vector types.
- Eliminates b1x4, b1x8, and b1x16 as distinct WASM types.
- All vector comparisons return v128 type.
- Eliminates b1xN and, or, xor, not.
- Selects take a v128 mask vector and are now bit-wise.
- Adds a new test for Select, where mask is non-canonical (not 0's and -1's).

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2919203002
Cr-Commit-Position: refs/heads/master@{#45795}

[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/arm64/instruction-selector-arm64.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/ia32/instruction-selector-ia32.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/instruction-selector.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/instruction-selector.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/instruction.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/instruction.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/js-native-context-specialization.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/load-elimination.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/machine-graph-verifier.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/machine-operator.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/machine-operator.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/mips/code-generator-mips.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/mips/instruction-codes-mips.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/mips/instruction-selector-mips.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/mips64/code-generator-mips64.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/mips64/instruction-codes-mips64.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/mips64/instruction-selector-mips64.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/opcodes.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/ppc/instruction-selector-ppc.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/register-allocator.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/representation-change.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/s390/instruction-selector-s390.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/simd-scalar-lowering.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/simd-scalar-lowering.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/simplified-lowering.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/x64/instruction-selector-x64.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/compiler/x87/instruction-selector-x87.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/machine-type.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/machine-type.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/wasm/function-body-decoder.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/wasm/module-decoder.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/381f7da02c4d8a641f329d23e06f99d7c75d5643/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 13, 2017, 6:27:36 PM6/13/17
to v8-re...@googlegroups.com

Comment #38 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c38


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/a4cf434f5bf4019373460ffd917697167c212501

commit a4cf434f5bf4019373460ffd917697167c212501
Author: bbudge <bbu...@chromium.org>
Date: Tue Jun 13 22:26:54 2017

[ARM64] Support 128 bit moves and swaps in code generator.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2928853002
Cr-Commit-Position: refs/heads/master@{#45928}

[modify] https://crrev.com/a4cf434f5bf4019373460ffd917697167c212501/src/compiler/arm64/code-generator-arm64.cc

bugdro… via monorail

unread,
Jun 13, 2017, 7:41:09 PM6/13/17
to v8-re...@googlegroups.com

Comment #39 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c39


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/5d7039eac3a43909f1354a191fe26f55b7dec439

commit 5d7039eac3a43909f1354a191fe26f55b7dec439
Author: bbudge <bbu...@chromium.org>
Date: Tue Jun 13 23:40:51 2017

[WASM] Simplify SIMD shuffle opcodes.
- Eliminates S32x4Shuffle, S16x8Shuffle opcodes. All shuffles are subsumed
by S8x16Shuffle. This aligns us with the latest WASM SIMD spec.

LOG=N
BUG=v8:6020

Review-Url: https://codereview.chromium.org/2923103003
Cr-Commit-Position: refs/heads/master@{#45929}

[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/instruction-selector.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/machine-operator.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/machine-operator.h
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/opcodes.h
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/compiler/wasm-compiler.h
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/wasm/function-body-decoder.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/test/cctest/wasm/test-run-wasm-simd.cc
[modify] https://crrev.com/5d7039eac3a43909f1354a191fe26f55b7dec439/test/unittests/wasm/function-body-decoder-unittest.cc

bugdro… via monorail

unread,
Jun 20, 2017, 4:44:32 PM6/20/17
to v8-re...@googlegroups.com

Comment #40 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c40


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/2f83ffa99d7c0272e71a07494fadd4891c4c400a

commit 2f83ffa99d7c0272e71a07494fadd4891c4c400a
Author: Aseem Garg <asee...@google.com>
Date: Tue Jun 20 20:43:18 2017

[WASM SIMD] Store simd lowering compare ops result as -1 instead of 1

BUG: v8:6020
Change-Id: I3148511233ee6f89acd71644e0c43f72ccc5eef0
Reviewed-on: https://chromium-review.googlesource.com/538160
Reviewed-by: Bill Budge <bbu...@chromium.org>
Reviewed-by: Mircea Trofin <mtr...@chromium.org>
Commit-Queue: Aseem Garg <asee...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46071}
[modify] https://crrev.com/2f83ffa99d7c0272e71a07494fadd4891c4c400a/src/compiler/simd-scalar-lowering.cc
[modify] https://crrev.com/2f83ffa99d7c0272e71a07494fadd4891c4c400a/src/compiler/simd-scalar-lowering.h

bugdro… via monorail

unread,
Jun 20, 2017, 5:07:39 PM6/20/17
to v8-re...@googlegroups.com

Comment #41 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c41


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/dddd2c696c21809c24dd4f5daa5aa004ff5f022d

commit dddd2c696c21809c24dd4f5daa5aa004ff5f022d
Author: Aseem Garg <asee...@chromium.org>
Date: Tue Jun 20 21:06:43 2017

Revert "[WASM SIMD] Store simd lowering compare ops result as -1 instead of 1"

This reverts commit 2f83ffa99d7c0272e71a07494fadd4891c4c400a.

Reason for revert: Bots failed after this landed. Need to figure out if it is related.

Original change's description:

> [WASM SIMD] Store simd lowering compare ops result as -1 instead of 1
>
> BUG: v8:6020
> Change-Id: I3148511233ee6f89acd71644e0c43f72ccc5eef0
> Reviewed-on: https://chromium-review.googlesource.com/538160
> Reviewed-by: Bill Budge <bbu...@chromium.org>
> Reviewed-by: Mircea Trofin <mtr...@chromium.org>
> Commit-Queue: Aseem Garg <asee...@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#46071}

bugdro… via monorail

unread,
Jun 20, 2017, 5:44:59 PM6/20/17
to v8-re...@googlegroups.com

Comment #42 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c42


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/ef0f0b28f8074c8923fb06ec9723038b70871d10

commit ef0f0b28f8074c8923fb06ec9723038b70871d10
Author: Aseem Garg <asee...@chromium.org>
Date: Tue Jun 20 21:44:17 2017

Revert "Revert "[WASM SIMD] Store simd lowering compare ops result as -1 instead of 1""

This reverts commit dddd2c696c21809c24dd4f5daa5aa004ff5f022d.

Reason for revert: The breakage seemed unrelated (it wasn't fixed on revert).

Original change's description:

> Revert "[WASM SIMD] Store simd lowering compare ops result as -1 instead of 1"
>
> This reverts commit 2f83ffa99d7c0272e71a07494fadd4891c4c400a.
>
> Reason for revert: Bots failed after this landed. Need to figure out if it is related.
>
> Original change's description:
> > [WASM SIMD] Store simd lowering compare ops result as -1 instead of 1
> >
> > BUG: v8:6020
> > Change-Id: I3148511233ee6f89acd71644e0c43f72ccc5eef0
> > Reviewed-on: https://chromium-review.googlesource.com/538160
> > Reviewed-by: Bill Budge <bbu...@chromium.org>
> > Reviewed-by: Mircea Trofin <mtr...@chromium.org>
> > Commit-Queue: Aseem Garg <asee...@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#46071}
>
> TBR=bbu...@chromium.org,gde...@chromium.org,mtr...@chromium.org,asee...@chromium.org
>
> Change-Id: I300eadd02ab2d20817461e6f9a2c23c138b42256
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/541717
> Reviewed-by: Aseem Garg <asee...@chromium.org>
> Commit-Queue: Aseem Garg <asee...@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#46072}


No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Reviewed-by: Aseem Garg <asee...@chromium.org>
Commit-Queue: Aseem Garg <asee...@chromium.org>

bugdro… via monorail

unread,
Jun 20, 2017, 7:05:14 PM6/20/17
to v8-re...@googlegroups.com

Comment #43 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c43


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/73ca1690ae2da2306e8c17a2440a154e64fa6f1c

commit 73ca1690ae2da2306e8c17a2440a154e64fa6f1c
Author: Bill Budge <bbu...@chromium.org>
Date: Tue Jun 20 23:04:43 2017

[WASM SIMD] Eliminate boolean vector materialization in SIMD tests.
- Now that there are no boolean vector types, we can directly test the
results of relational ops.

Bug: v8:6020
Change-Id: Id2139133ae3a548a9985a26a3427cbeddc6272a6
Reviewed-on: https://chromium-review.googlesource.com/536176
Reviewed-by: Aseem Garg <asee...@chromium.org>
Commit-Queue: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46075}
[modify] https://crrev.com/73ca1690ae2da2306e8c17a2440a154e64fa6f1c/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 29, 2017, 12:08:30 PM6/29/17
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Jul 20, 2017, 3:39:54 PM7/20/17
to v8-re...@googlegroups.com

Comment #45 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c45


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05

commit 8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05
Author: Bill Budge <bbu...@chromium.org>
Date: Thu Jul 20 19:38:56 2017

[WASM] Use scalar duplicate for matching shuffles on arm and arm64.
- Adds opcode for 32/16/8 bit dup instruction.
- Matches shuffles that are equivalent to dup's.

Bug: v8:6020
Change-Id: I8848d974adf30127d1dc31c09a9517f8f9573ce9
Reviewed-on: https://chromium-review.googlesource.com/571448
Commit-Queue: Bill Budge <bbu...@chromium.org>
Reviewed-by: Martyn Capewell <martyn....@arm.com>
Reviewed-by: Mircea Trofin <mtr...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46803}
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm/instruction-codes-arm.h
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm/instruction-scheduler-arm.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm64/code-generator-arm64.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm64/instruction-codes-arm64.h
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm64/instruction-scheduler-arm64.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/arm64/instruction-selector-arm64.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/instruction-selector.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/instruction-selector.h
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/mips/instruction-selector-mips.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/src/compiler/mips64/instruction-selector-mips64.cc
[modify] https://crrev.com/8ab48b6c04a71e0b834512833ef8b0fdaf6d2b05/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jul 28, 2017, 8:55:46 PM7/28/17
to v8-re...@googlegroups.com

Comment #46 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c46


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/f8d95d7266565ffc730682e41d0f05bdab73c6d1

commit f8d95d7266565ffc730682e41d0f05bdab73c6d1
Author: Bill Budge <bbu...@chromium.org>
Date: Sat Jul 29 00:55:25 2017

[Turbofan] Fix 128 bit slot swaps on ia32.
- Use a sequence of push/pop instructions to move 128 bit values.
- Generalize HighOperand method to handle other offsets.

Bug: v8:6020
Change-Id: I21467c2f19637b0e6b86a3060952386dd0c5d77a
Reviewed-on: https://chromium-review.googlesource.com/583627
Reviewed-by: Mircea Trofin <mtr...@chromium.org>
Commit-Queue: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46987}
[modify] https://crrev.com/f8d95d7266565ffc730682e41d0f05bdab73c6d1/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/f8d95d7266565ffc730682e41d0f05bdab73c6d1/src/compiler/x64/code-generator-x64.cc

bradnel… via monorail

unread,
Sep 6, 2017, 4:15:17 AM9/6/17
to v8-re...@googlegroups.com
Updates:
Cc: -setht...@chromium.org natt...@chromium.org

Comment #47 on issue 6020 by bradn...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c47

(No comment was entered for this change.)

bugdro… via monorail

unread,
Sep 20, 2017, 5:26:38 PM9/20/17
to v8-re...@googlegroups.com

Comment #48 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c48


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/c701bd2ebfa645da32e2319c3fbca72f5742d7d4

commit c701bd2ebfa645da32e2319c3fbca72f5742d7d4
Author: Bill Budge <bbu...@chromium.org&gt;
Date: Wed Sep 20 21:25:31 2017

[Turbofan] Fix x64 128 bit swaps when AVX is not supported.

- Changes x64 AssembleSwap to push/pop to swap 128 bit slot swaps.
- Reorders instructions to simplify 32/64 bit FP slot swaps.
- Refactor ia32 version of this, eliminating OffsetOperand in favor of
existing ToOperand.

Bug: v8:6020
Change-Id: Ie0ae4c581c9aeb88ee786797851c3c77d5210a3d
Reviewed-on: https://chromium-review.googlesource.com/669748
Commit-Queue: Bill Budge <bbu...@chromium.org&gt;
Reviewed-by: Jaroslav Sevcik <ja...@chromium.org&gt;
Cr-Commit-Position: refs/heads/master@{#48096}
[modify] https://crrev.com/c701bd2ebfa645da32e2319c3fbca72f5742d7d4/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/c701bd2ebfa645da32e2319c3fbca72f5742d7d4/src/compiler/x64/code-generator-x64.cc

bugdro… via monorail

unread,
Oct 5, 2017, 5:25:41 PM10/5/17
to v8-re...@googlegroups.com

Comment #49 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c49


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/8fc10b5af7a838eedf56a7cfb490049bc93730a6

commit 8fc10b5af7a838eedf56a7cfb490049bc93730a6
Author: Aseem Garg <asee...@chromium.org&gt;
Date: Thu Oct 05 21:25:34 2017

[wasm] Re-enable Simd lowering tests for wasm

This adds a new simd lowering execution mode for
simd and re-enables the lowering tests

R=tit...@chromium.org,gde...@chromium.org,bbu...@chromium.org,mtr...@chromium.org
BUG=v8:6020

Change-Id: Ice6b7ff2f5973804d379c88241d49b811429a965
Reviewed-on: https://chromium-review.googlesource.com/698928
Commit-Queue: Aseem Garg <asee...@chromium.org&gt;
Reviewed-by: Ben Titzer <tit...@chromium.org&gt;
Reviewed-by: Bill Budge <bbu...@chromium.org&gt;
Cr-Commit-Position: refs/heads/master@{#48322}
[modify] https://crrev.com/8fc10b5af7a838eedf56a7cfb490049bc93730a6/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/8fc10b5af7a838eedf56a7cfb490049bc93730a6/src/compiler/wasm-compiler.h
[modify] https://crrev.com/8fc10b5af7a838eedf56a7cfb490049bc93730a6/test/cctest/wasm/test-run-wasm-simd.cc
[modify] https://crrev.com/8fc10b5af7a838eedf56a7cfb490049bc93730a6/test/cctest/wasm/wasm-run-utils.cc
[modify] https://crrev.com/8fc10b5af7a838eedf56a7cfb490049bc93730a6/test/cctest/wasm/wasm-run-utils.h

bugdro… via monorail

unread,
Jan 24, 2018, 8:44:11 PM1/24/18
to v8-re...@googlegroups.com

Comment #50 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c50


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/a4832851182e9e571bc700fd4f0c4a321c8d6a6b

commit a4832851182e9e571bc700fd4f0c4a321c8d6a6b
Author: Deepti Gandluri <gde...@chromium.org>
Date: Thu Jan 25 01:43:38 2018

[wasm] Clean up SIMD macros, enable tests

Bug: v8:6020
Change-Id: I056eb376bddfefad9f509808a6c71f5ce1769402
Reviewed-on: https://chromium-review.googlesource.com/877327
Commit-Queue: Deepti Gandluri <gde...@chromium.org>
Reviewed-by: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50857}
[modify] https://crrev.com/a4832851182e9e571bc700fd4f0c4a321c8d6a6b/src/compiler/instruction-selector.cc
[modify] https://crrev.com/a4832851182e9e571bc700fd4f0c4a321c8d6a6b/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Feb 6, 2018, 12:32:21 PM2/6/18
to v8-re...@googlegroups.com

Comment #51 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c51


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/3363e51958c9364237c63a6635d5a24996c55870

commit 3363e51958c9364237c63a6635d5a24996c55870
Author: Deepti Gandluri <gde...@chromium.org>
Date: Tue Feb 06 17:31:42 2018

[wasm] Add F32x4{Abs, Neg, AddHoriz}

- Remove redundant instruction from I16x8Splat
- Force F32x4Splat to use movss, as using MacroAssembler can mix SSE/AVX
instructions

Bug: v8:6020
Change-Id: I781c22adecf892a79b6a38c3d83fc4022f9067de
Reviewed-on: https://chromium-review.googlesource.com/898429
Reviewed-by: Bill Budge <bbu...@chromium.org>
Reviewed-by: Jaroslav Sevcik <ja...@chromium.org>
Commit-Queue: Deepti Gandluri <gde...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51123}
[modify] https://crrev.com/3363e51958c9364237c63a6635d5a24996c55870/src/compiler/instruction-selector.cc
[modify] https://crrev.com/3363e51958c9364237c63a6635d5a24996c55870/src/compiler/x64/code-generator-x64.cc
[modify] https://crrev.com/3363e51958c9364237c63a6635d5a24996c55870/src/compiler/x64/instruction-codes-x64.h
[modify] https://crrev.com/3363e51958c9364237c63a6635d5a24996c55870/src/compiler/x64/instruction-scheduler-x64.cc
[modify] https://crrev.com/3363e51958c9364237c63a6635d5a24996c55870/src/compiler/x64/instruction-selector-x64.cc
[modify] https://crrev.com/3363e51958c9364237c63a6635d5a24996c55870/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
May 18, 2018, 6:30:47 PM5/18/18
to v8-re...@googlegroups.com

Comment #52 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c52


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/eff265415a98ffee9ae461e7ecf7b8fe7cdef77b

commit eff265415a98ffee9ae461e7ecf7b8fe7cdef77b
Author: Aseem Garg <asee...@chromium.org>
Date: Fri May 18 22:30:10 2018

[wasm] Add simd splat to wasm interpreter

R=gde...@chromium.org,bbu...@chromium.org,clem...@chromium.org,tit...@chromium.org
BUG=v8:6020

Change-Id: I25676d4f8a7ea7b1e02a54abe009faec0eb2c6db
Reviewed-on: https://chromium-review.googlesource.com/1018840
Commit-Queue: Aseem Garg <asee...@chromium.org>
Reviewed-by: Clemens Hammacher <clem...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53266}
[modify] https://crrev.com/eff265415a98ffee9ae461e7ecf7b8fe7cdef77b/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/eff265415a98ffee9ae461e7ecf7b8fe7cdef77b/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/eff265415a98ffee9ae461e7ecf7b8fe7cdef77b/src/wasm/wasm-value.h
[modify] https://crrev.com/eff265415a98ffee9ae461e7ecf7b8fe7cdef77b/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
May 23, 2018, 6:57:43 PM5/23/18
to v8-re...@googlegroups.com

Comment #53 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c53


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/7b3089c0de43cad3b23d79562a65a0537990009d

commit 7b3089c0de43cad3b23d79562a65a0537990009d
Author: Aseem Garg <asee...@chromium.org>
Date: Wed May 23 22:56:36 2018

[wasm] Add simd binops to wasm interpreter

R=gde...@chromium.org,bbu...@chromium.org,clem...@chromium.org,tit...@chromium.org
BUG=v8:6020

Change-Id: I671d74b49206a3612764c7b9cb63591e7e81e857
Reviewed-on: https://chromium-review.googlesource.com/1069933
Commit-Queue: Aseem Garg <asee...@chromium.org>
Reviewed-by: Ben Titzer <tit...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53316}
[modify] https://crrev.com/7b3089c0de43cad3b23d79562a65a0537990009d/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/7b3089c0de43cad3b23d79562a65a0537990009d/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
May 24, 2018, 3:02:34 PM5/24/18
to v8-re...@googlegroups.com

Comment #54 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c54


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/bedcef5cd04a61876f77fb98cd49e47e01184473

commit bedcef5cd04a61876f77fb98cd49e47e01184473
Author: Aseem Garg <asee...@chromium.org>
Date: Thu May 24 19:01:32 2018

[wasm] Add simd unops to wasm interpreter

R=gde...@chromium.org,bbu...@chromium.org,clem...@chromium.org,tit...@chromium.org
BUG=v8:6020

Change-Id: Ibc4e45df65ad8fc649e42b2166545cbc5fcb4296
Reviewed-on: https://chromium-review.googlesource.com/1070933
Reviewed-by: Ben Titzer <tit...@chromium.org>
Commit-Queue: Aseem Garg <asee...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53346}
[modify] https://crrev.com/bedcef5cd04a61876f77fb98cd49e47e01184473/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/bedcef5cd04a61876f77fb98cd49e47e01184473/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
May 25, 2018, 6:20:18 PM5/25/18
to v8-re...@googlegroups.com

Comment #55 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c55


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/f8445719c329ab973fe59eb5931691f84f6a85f0

commit f8445719c329ab973fe59eb5931691f84f6a85f0
Author: Aseem Garg <asee...@chromium.org>
Date: Fri May 25 22:19:24 2018

[wasm] Delete Simd unsigned int types for interpreter

R=gde...@chromium.org,bbu...@chromium.org,clem...@chromium.org,tit...@chromium.org
BUG=v8:6020

Change-Id: I05bb2124751f64565ad4e22f267fe42a3e0f1845
Reviewed-on: https://chromium-review.googlesource.com/1070935

Commit-Queue: Aseem Garg <asee...@chromium.org>
Reviewed-by: Ben Titzer <tit...@chromium.org>

bugdro… via monorail

unread,
May 25, 2018, 6:33:04 PM5/25/18
to v8-re...@googlegroups.com

Comment #56 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c56


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/f22991ab408d65fee98366c98f0457eb7a2aeef3

commit f22991ab408d65fee98366c98f0457eb7a2aeef3
Author: Aseem Garg <asee...@chromium.org>
Date: Fri May 25 22:29:34 2018

[wasm] Add simd compare ops to wasm interpreter

R=gde...@chromium.org,bbu...@chromium.org,clem...@chromium.org,tit...@chromium.org
BUG=v8:6020

Change-Id: I9d307a70d44504dc0e84e3e09d48bcc9b9542462
Reviewed-on: https://chromium-review.googlesource.com/1071095

Commit-Queue: Aseem Garg <asee...@chromium.org>
Reviewed-by: Ben Titzer <tit...@chromium.org>

bugdro… via monorail

unread,
Jun 1, 2018, 5:51:05 PM6/1/18
to v8-re...@googlegroups.com

Comment #57 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c57


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/dc6819ec56115571529a25970f4dd9069dfc94a3

commit dc6819ec56115571529a25970f4dd9069dfc94a3
Author: Aseem Garg <asee...@chromium.org>
Date: Fri Jun 01 21:50:35 2018

[wasm] Add simd replaceLane ops to wasm interpreter

Also enables tests for globals and mixed type use

R=gde...@chromium.org,bbu...@chromium.org,clem...@chromium.org,tit...@chromium.org
BUG=v8:6020

Change-Id: I828f1628a1c27d9f07ba3a830600f81c5a404b2d
Reviewed-on: https://chromium-review.googlesource.com/1080340
Reviewed-by: Clemens Hammacher <clem...@chromium.org>
Commit-Queue: Aseem Garg <asee...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53477}
[modify] https://crrev.com/dc6819ec56115571529a25970f4dd9069dfc94a3/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/dc6819ec56115571529a25970f4dd9069dfc94a3/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/dc6819ec56115571529a25970f4dd9069dfc94a3/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/dc6819ec56115571529a25970f4dd9069dfc94a3/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 5, 2018, 5:15:30 PM6/5/18
to v8-re...@googlegroups.com

Comment #58 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c58


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/62620a42575bf4d323bd3833b8f7f26b61c9027e

commit 62620a42575bf4d323bd3833b8f7f26b61c9027e
Author: Aseem Garg <asee...@chromium.org>
Date: Tue Jun 05 21:14:36 2018

[wasm] use static_cast for simd in interpreter

R=clem...@chromium.org
BUG=v8:6020

Change-Id: I03ad47ea119be699bd9defde6d962d32295be40c
Reviewed-on: https://chromium-review.googlesource.com/1083694
Commit-Queue: Aseem Garg <asee...@chromium.org>
Reviewed-by: Clemens Hammacher <clem...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53537}
[modify] https://crrev.com/62620a42575bf4d323bd3833b8f7f26b61c9027e/src/wasm/wasm-interpreter.cc

john.yan… via monorail

unread,
Jun 6, 2018, 2:12:03 PM6/6/18
to v8-re...@googlegroups.com

Comment #59 on issue 6020 by john.yan...@gmail.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c59

Hello, big endian is failing on https://chromium.googlesource.com/v8/v8.git/+/dc6819ec56115571529a25970f4dd9069dfc94a3
Any suggestions?

Thanks,
John

aseemg… via monorail

unread,
Jun 6, 2018, 4:27:42 PM6/6/18
to v8-re...@googlegroups.com

Comment #60 on issue 6020 by asee...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c60

I think I might have an idea (I didn't do anything special for load/store ops; that could be the problem). Will investigate today and fix or if can't figure out a quick solution, will disable the failing tests till it is fixed.

aseemg… via monorail

unread,
Jun 6, 2018, 8:54:07 PM6/6/18
to v8-re...@googlegroups.com

Comment #61 on issue 6020 by asee...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c61

Disabling tests. Emailed the mips folks to better understand how to resolve this. I looked into simd-scalar-lowering.h for reference and it seems we are doing two conflicting things in case of endianness.

peter.wm… via monorail

unread,
Jun 6, 2018, 11:04:09 PM6/6/18
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Jun 7, 2018, 3:54:34 PM6/7/18
to v8-re...@googlegroups.com

Comment #63 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c63


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/63b32e2747c89a45fa0e954a1da8d80ad6b8f096

commit 63b32e2747c89a45fa0e954a1da8d80ad6b8f096
Author: Aseem Garg <asee...@chromium.org>
Date: Thu Jun 07 19:53:57 2018

[wasm] disable SIMD interpreter tests for mips

The globals tests for simd are failing on mips big endian. Will re-enable
after fixing.

R=clem...@chromium.org
BUG=v8:6020

Change-Id: I8a8a17c4e947b69ccc2eb6bbe79c308b1129d1af
Reviewed-on: https://chromium-review.googlesource.com/1089814

Commit-Queue: Aseem Garg <asee...@chromium.org>
Reviewed-by: Clemens Hammacher <clem...@chromium.org>

bugdro… via monorail

unread,
Jun 11, 2018, 2:41:29 PM6/11/18
to v8-re...@googlegroups.com

Comment #64 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c64


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/bcb4fbd4add7e6aca2713062d78fb1d829a55db7

commit bcb4fbd4add7e6aca2713062d78fb1d829a55db7
Author: Bill Budge <bbu...@chromium.org>
Date: Mon Jun 11 18:40:24 2018

[wasm simd] Handle more shuffles

- Shuffle canonicalization improved to reverse operands to match
more architectural shuffles.
- Handles shuffles where the order of operands is reversed.
- Adds tests for non-canonical shuffles, and for swizzles.
- Improves TryMatchConcat method.
- Substantially rewrites shuffles on ia32 to better handle swizzles
and fix bugs on reversed shuffles where source registers are
overwritten.
- Adds Palignr macro-assembler instructions for ia32.

Bug: v8:6020
Change-Id: I8e43a1e7650057c66690af1504b67509a1437d75
Reviewed-on: https://chromium-review.googlesource.com/1070934
Commit-Queue: Bill Budge <bbu...@chromium.org>
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Reviewed-by: Martyn Capewell <martyn....@arm.com>
Reviewed-by: Jaroslav Sevcik <ja...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53648}
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/arm64/instruction-selector-arm64.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/ia32/instruction-codes-ia32.h
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/ia32/instruction-scheduler-ia32.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/ia32/instruction-selector-ia32.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/instruction-selector.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/instruction-selector.h
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/mips/instruction-selector-mips.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/src/compiler/mips64/instruction-selector-mips64.cc
[modify] https://crrev.com/bcb4fbd4add7e6aca2713062d78fb1d829a55db7/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 13, 2018, 3:42:50 PM6/13/18
to v8-re...@googlegroups.com

bugdro… via monorail

unread,
Jun 13, 2018, 5:10:29 PM6/13/18
to v8-re...@googlegroups.com

Comment #66 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c66


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/76cc2ad07efa8241e5ea96b8e91d987514123af7

commit 76cc2ad07efa8241e5ea96b8e91d987514123af7
Author: Sathya Gunasekaran <gsa...@chromium.org>
Date: Wed Jun 13 21:10:18 2018

Revert "[wasm] Add simd mem and shift ops to interpreter"

This reverts commit 2338a2fd63b25130a74edc831f9bf682d4fd43f4.

Reason for revert: broke mips

see https://ci.chromium.org/buildbot/client.v8.ports/V8%20Mips%20-%20builder/17573

Original change's description:

> [wasm] Add simd mem and shift ops to interpreter
>
> R=​clem...@chromium.org
> BUG=v8:6020
>
> Change-Id: I5d95e4c23240ae4e174d896d31e1b9b1d89d9418
> Reviewed-on: https://chromium-review.googlesource.com/1096493
> Reviewed-by: Clemens Hammacher <clem...@chromium.org>
> Commit-Queue: Aseem Garg <asee...@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53717}

TBR=asee...@chromium.org,clem...@chromium.org

Change-Id: I8e5b2e9a9c1c09d035335ba6681bbe3e1ce5abfb

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6020
Reviewed-on: https://chromium-review.googlesource.com/1099776
Reviewed-by: Sathya Gunasekaran <gsa...@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsa...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53718}
[modify] https://crrev.com/76cc2ad07efa8241e5ea96b8e91d987514123af7/src/compiler/simd-scalar-lowering.cc
[modify] https://crrev.com/76cc2ad07efa8241e5ea96b8e91d987514123af7/src/compiler/simd-scalar-lowering.h
[modify] https://crrev.com/76cc2ad07efa8241e5ea96b8e91d987514123af7/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/76cc2ad07efa8241e5ea96b8e91d987514123af7/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/76cc2ad07efa8241e5ea96b8e91d987514123af7/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/76cc2ad07efa8241e5ea96b8e91d987514123af7/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/76cc2ad07efa8241e5ea96b8e91d987514123af7/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 13, 2018, 6:04:18 PM6/13/18
to v8-re...@googlegroups.com

Comment #67 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c67


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/0091973e82531f06ece774bfbc346df6f4fd39c2

commit 0091973e82531f06ece774bfbc346df6f4fd39c2
Author: Aseem Garg <asee...@chromium.org>
Date: Wed Jun 13 22:03:46 2018

Reland "[wasm] Add simd mem and shift ops to interpreter"

This is a reland of 2338a2fd63b25130a74edc831f9bf682d4fd43f4


Original change's description:
> [wasm] Add simd mem and shift ops to interpreter
>
> R=clem...@chromium.org
> BUG=v8:6020
>
> Change-Id: I5d95e4c23240ae4e174d896d31e1b9b1d89d9418
> Reviewed-on: https://chromium-review.googlesource.com/1096493
> Reviewed-by: Clemens Hammacher <clem...@chromium.org>
> Commit-Queue: Aseem Garg <asee...@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53717}

Bug: v8:6020
Change-Id: I38a73f5e389617a05a12e0a9477544c4e3aa2883
Reviewed-on: https://chromium-review.googlesource.com/1099895
Reviewed-by: Ben Smith <bi...@chromium.org>
Commit-Queue: Aseem Garg <asee...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53722}
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/src/compiler/simd-scalar-lowering.cc
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/src/compiler/simd-scalar-lowering.h
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/src/utils.h
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/src/wasm/wasm-opcodes.cc
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/test/cctest/cctest.status
[modify] https://crrev.com/0091973e82531f06ece774bfbc346df6f4fd39c2/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 15, 2018, 1:58:36 PM6/15/18
to v8-re...@googlegroups.com

Comment #68 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c68


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/497b6746bec63f34dfc2b686665b4717e3e75c06

commit 497b6746bec63f34dfc2b686665b4717e3e75c06
Author: Junliang Yan <jy...@ca.ibm.com>
Date: Fri Jun 15 17:58:22 2018

[wasm] skip big-endian failing tests across all big-endian platforms

Bug: v8:6020
Change-Id: If121d2813e81e11773c42c36893b63ff98fc0247
Reviewed-on: https://chromium-review.googlesource.com/1101840
Reviewed-by: Aseem Garg <asee...@chromium.org>
Commit-Queue: Junliang Yan <jy...@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53772}
[modify] https://crrev.com/497b6746bec63f34dfc2b686665b4717e3e75c06/test/cctest/cctest.status

bugdro… via monorail

unread,
Jun 20, 2018, 5:30:18 PM6/20/18
to v8-re...@googlegroups.com

Comment #69 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c69


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/618bc445fe8b2c9d14092977337fe26657567cd1

commit 618bc445fe8b2c9d14092977337fe26657567cd1
Author: Aseem Garg <asee...@chromium.org>
Date: Wed Jun 20 21:26:16 2018

[wasm] add simd convert and pack to interpreter

R=gde...@chromium.org
BUG=v8:6020

Change-Id: Ibdeb926ef3e2884b9a3f0831e9482ebe2da227ac
Reviewed-on: https://chromium-review.googlesource.com/1105464
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Commit-Queue: Aseem Garg <asee...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53898}
[modify] https://crrev.com/618bc445fe8b2c9d14092977337fe26657567cd1/src/compiler/ia32/instruction-selector-ia32.cc
[modify] https://crrev.com/618bc445fe8b2c9d14092977337fe26657567cd1/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/618bc445fe8b2c9d14092977337fe26657567cd1/test/cctest/wasm/test-run-wasm-simd.cc
[modify] https://crrev.com/618bc445fe8b2c9d14092977337fe26657567cd1/test/cctest/wasm/wasm-run-utils.cc

bugdro… via monorail

unread,
Jun 21, 2018, 1:18:37 PM6/21/18
to v8-re...@googlegroups.com

Comment #70 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c70


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/51ded9a743d8bea52cfd3c462bf1ebfd6093394c

commit 51ded9a743d8bea52cfd3c462bf1ebfd6093394c
Author: Bill Budge <bbu...@chromium.org>
Date: Thu Jun 21 17:17:37 2018


[wasm simd] Handle more shuffles

- Handles zip, unzip, and transpose shuffles/swizzles.
- Adds punpck* instructions to assembler.

Bug: v8:6020
Change-Id: If124b7a7462ffd0470347b54ce4a93c01667e384
Reviewed-on: https://chromium-review.googlesource.com/1084069
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Commit-Queue: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53947}
[modify] https://crrev.com/51ded9a743d8bea52cfd3c462bf1ebfd6093394c/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/51ded9a743d8bea52cfd3c462bf1ebfd6093394c/src/compiler/ia32/instruction-codes-ia32.h
[modify] https://crrev.com/51ded9a743d8bea52cfd3c462bf1ebfd6093394c/src/compiler/ia32/instruction-scheduler-ia32.cc
[modify] https://crrev.com/51ded9a743d8bea52cfd3c462bf1ebfd6093394c/src/compiler/ia32/instruction-selector-ia32.cc
[modify] https://crrev.com/51ded9a743d8bea52cfd3c462bf1ebfd6093394c/src/ia32/sse-instr.h
[modify] https://crrev.com/51ded9a743d8bea52cfd3c462bf1ebfd6093394c/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jun 22, 2018, 7:57:03 PM6/22/18
to v8-re...@googlegroups.com

Comment #71 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c71


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/82d447228b6415376eed5cf96ebc72f88327e70b

commit 82d447228b6415376eed5cf96ebc72f88327e70b
Author: Aseem Garg <asee...@chromium.org>
Date: Fri Jun 22 23:56:20 2018

[wasm] reduce registers for simd packing in ia32

R=gde...@chromium.org
BUG=v8:6020

Change-Id: I01644bca95ff5715122c1bc3923024145586a6fd
Reviewed-on: https://chromium-review.googlesource.com/1112070
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Commit-Queue: Aseem Garg <asee...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53985}
[modify] https://crrev.com/82d447228b6415376eed5cf96ebc72f88327e70b/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/82d447228b6415376eed5cf96ebc72f88327e70b/src/compiler/ia32/instruction-selector-ia32.cc

bugdro… via monorail

unread,
Jun 25, 2018, 5:52:58 PM6/25/18
to v8-re...@googlegroups.com

Comment #72 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c72


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/21e5229c5fbd84aadfaa9f3ece81b33cc5eb49d0

commit 21e5229c5fbd84aadfaa9f3ece81b33cc5eb49d0
Author: Aseem Garg <asee...@chromium.org>
Date: Mon Jun 25 21:51:38 2018

Revert "[wasm] reduce registers for simd packing in ia32"

This reverts commit 82d447228b6415376eed5cf96ebc72f88327e70b.

Reason for revert: we want to keep register allocation general simd binary case

Original change's description:

> [wasm] reduce registers for simd packing in ia32
>
> R=​gde...@chromium.org
> BUG=v8:6020
>
> Change-Id: I01644bca95ff5715122c1bc3923024145586a6fd
> Reviewed-on: https://chromium-review.googlesource.com/1112070
> Reviewed-by: Deepti Gandluri <gde...@chromium.org>
> Commit-Queue: Aseem Garg <asee...@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53985}

bugdro… via monorail

unread,
Jun 28, 2018, 2:52:55 PM6/28/18
to v8-re...@googlegroups.com

Comment #73 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c73


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/6afa21102887e311a90a765501c323280d00718d

commit 6afa21102887e311a90a765501c323280d00718d
Author: Bill Budge <bbu...@chromium.org>
Date: Thu Jun 28 18:52:33 2018

[wasm simd] Add unit tests for shuffle matching methods.

- Adds some unit tests for InstructionSelector::TryMatch* methods.
- Adds a TryMatchIdentity method. We should detect identity shuffles
and emit no code in that case.

Bug: v8:6020
Change-Id: I5dea84738bf87db7112eb7d19f91b1e6b20811c7
Reviewed-on: https://chromium-review.googlesource.com/1116058
Commit-Queue: Bill Budge <bbu...@chromium.org>
Reviewed-by: Jaroslav Sevcik <ja...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54097}
[modify] https://crrev.com/6afa21102887e311a90a765501c323280d00718d/src/compiler/instruction-selector.cc
[modify] https://crrev.com/6afa21102887e311a90a765501c323280d00718d/src/compiler/instruction-selector.h
[modify] https://crrev.com/6afa21102887e311a90a765501c323280d00718d/test/unittests/compiler/instruction-selector-unittest.cc

bugdro… via monorail

unread,
Jun 29, 2018, 4:15:14 PM6/29/18
to v8-re...@googlegroups.com

Comment #74 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c74


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/d3fe5ac7c3a952ddbeddda95a531656840e3e9f4

commit d3fe5ac7c3a952ddbeddda95a531656840e3e9f4
Author: Aseem Garg <asee...@chromium.org>
Date: Fri Jun 29 20:13:50 2018

[wasm] add simd horiz and reduce to interpreter

This CL adds simd select, addHoriz, shuffle, anyTrue and all true to the
interpreter. It also gets rid of SIMD_COMPILED_AND_LOWERED_TEST and
SIMD_COMPILED_TEST macros.

R=gde...@chromium.org
BUG=v8:6020

Change-Id: I44abbcaddc3223a95c79ccc65ae9c6bf1a911c5d
Reviewed-on: https://chromium-review.googlesource.com/1119258
Commit-Queue: Aseem Garg <asee...@chromium.org>
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54116}
[modify] https://crrev.com/d3fe5ac7c3a952ddbeddda95a531656840e3e9f4/src/wasm/function-body-decoder-impl.h
[modify] https://crrev.com/d3fe5ac7c3a952ddbeddda95a531656840e3e9f4/src/wasm/wasm-interpreter.cc
[modify] https://crrev.com/d3fe5ac7c3a952ddbeddda95a531656840e3e9f4/test/cctest/cctest.status
[modify] https://crrev.com/d3fe5ac7c3a952ddbeddda95a531656840e3e9f4/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jul 6, 2018, 12:23:09 PM7/6/18
to v8-re...@googlegroups.com

Comment #75 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c75


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/acf2d122dddea23d3ba43084a532fd900ed72338

commit acf2d122dddea23d3ba43084a532fd900ed72338
Author: Bill Budge <bbu...@chromium.org>
Date: Fri Jul 06 16:21:57 2018

[wasm simd] Improve code generation for I8x16 Shifts

- Eliminates I8x16SPLAT macro. This generates:

push eax
mov eax, #imm32
movd xmmDest, eax
pxor xmmScratch, xmmScratch
pshufb xmmDest, xmmScratch
pop eax

- Uses smaller sequence for I8x16Shl and I8x16ShrU that doesn't
require a temp register.
- Uses punpckbw, psraw, packsswb sequence for I8x16ShrS.

Bug: v8:6020
Change-Id: I1dc4ecaba43b150a3412e9083fe930868d9e5d5d
Reviewed-on: https://chromium-review.googlesource.com/1121045
Reviewed-by: Jing Bao <jing...@intel.com>
Commit-Queue: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54300}
[modify] https://crrev.com/acf2d122dddea23d3ba43084a532fd900ed72338/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/acf2d122dddea23d3ba43084a532fd900ed72338/src/compiler/ia32/instruction-codes-ia32.h
[modify] https://crrev.com/acf2d122dddea23d3ba43084a532fd900ed72338/src/compiler/ia32/instruction-scheduler-ia32.cc
[modify] https://crrev.com/acf2d122dddea23d3ba43084a532fd900ed72338/src/compiler/ia32/instruction-selector-ia32.cc
[modify] https://crrev.com/acf2d122dddea23d3ba43084a532fd900ed72338/src/ia32/macro-assembler-ia32.cc
[modify] https://crrev.com/acf2d122dddea23d3ba43084a532fd900ed72338/src/ia32/macro-assembler-ia32.h
[modify] https://crrev.com/acf2d122dddea23d3ba43084a532fd900ed72338/test/cctest/wasm/test-run-wasm-simd.cc

bugdro… via monorail

unread,
Jul 6, 2018, 1:32:08 PM7/6/18
to v8-re...@googlegroups.com

Comment #76 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c76


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/09e7d3e036206e5832ede68607bde10fca44f315

commit 09e7d3e036206e5832ede68607bde10fca44f315
Author: Bill Budge <bbu...@chromium.org>
Date: Fri Jul 06 17:31:07 2018

[wasm simd] Add code generation for byte reversing swizzles

- Adds opcodes for 2x8, 4x4, and 8x2 byte reversing swizzles on ia32.

Bug: v8:6020
Change-Id: I2c5d4ba88b42a17fc75ac0307e80d8c11d1838ba
Reviewed-on: https://chromium-review.googlesource.com/1121956
Commit-Queue: Bill Budge <bbu...@chromium.org>
Reviewed-by: Jing Bao <jing...@intel.com>
Cr-Commit-Position: refs/heads/master@{#54302}
[modify] https://crrev.com/09e7d3e036206e5832ede68607bde10fca44f315/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/09e7d3e036206e5832ede68607bde10fca44f315/src/compiler/ia32/instruction-codes-ia32.h
[modify] https://crrev.com/09e7d3e036206e5832ede68607bde10fca44f315/src/compiler/ia32/instruction-scheduler-ia32.cc
[modify] https://crrev.com/09e7d3e036206e5832ede68607bde10fca44f315/src/compiler/ia32/instruction-selector-ia32.cc

bugdro… via monorail

unread,
Jul 6, 2018, 5:13:55 PM7/6/18
to v8-re...@googlegroups.com

Comment #77 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c77


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/16de08ea725da1190f086b9d7fdbbd618d7ea7ea

commit 16de08ea725da1190f086b9d7fdbbd618d7ea7ea
Author: Bill Budge <bbu...@chromium.org>
Date: Fri Jul 06 21:13:01 2018

[wasm simd] Rework CanonicalizeShuffle for testing

- Refactors most of the logic into a helper CanonicalizeShuffle
overload that is more easily tested.
- Reorders these methods to be in the order they're used.
- Adds unit tests for this helper.

Bug: v8:6020
Change-Id: Ia7e08bd2ff3ae62b13c9283c6de04e0e1e85086b
Reviewed-on: https://chromium-review.googlesource.com/1118706
Reviewed-by: Jaroslav Sevcik <ja...@chromium.org>
Commit-Queue: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54303}
[modify] https://crrev.com/16de08ea725da1190f086b9d7fdbbd618d7ea7ea/src/compiler/instruction-selector.cc
[modify] https://crrev.com/16de08ea725da1190f086b9d7fdbbd618d7ea7ea/src/compiler/instruction-selector.h
[modify] https://crrev.com/16de08ea725da1190f086b9d7fdbbd618d7ea7ea/test/unittests/compiler/instruction-selector-unittest.cc

bugdro… via monorail

unread,
Jul 10, 2018, 12:19:51 PM7/10/18
to v8-re...@googlegroups.com

Comment #78 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c78


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/17568b913017985bdba3e9fc92acbb287661c0b2

commit 17568b913017985bdba3e9fc92acbb287661c0b2
Author: Bill Budge <bbu...@chromium.org>
Date: Tue Jul 10 16:19:32 2018

[wasm simd] Generate better code for Dup shuffles

- Dup shuffles broadcast a single lane from a source
operand to all lanes of the destination. Conceptually
similar to a splat, they require special handling since
the splatted value must be extracted from a source. The
32x4 case is already well handled (pshufd) but 16x8 and
8x16 currently generate the general shuffle code sequence.
- Adds IA32S16x8Dup, IA32S8x16Dup opcodes.

Bug: v8:6020
Change-Id: Ia4f044aa7e25cae30e8f9007c2488db738ca6cfc
Reviewed-on: https://chromium-review.googlesource.com/1128513
Reviewed-by: Jing Bao <jing...@intel.com>
Commit-Queue: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54362}
[modify] https://crrev.com/17568b913017985bdba3e9fc92acbb287661c0b2/src/compiler/ia32/code-generator-ia32.cc
[modify] https://crrev.com/17568b913017985bdba3e9fc92acbb287661c0b2/src/compiler/ia32/instruction-codes-ia32.h
[modify] https://crrev.com/17568b913017985bdba3e9fc92acbb287661c0b2/src/compiler/ia32/instruction-scheduler-ia32.cc
[modify] https://crrev.com/17568b913017985bdba3e9fc92acbb287661c0b2/src/compiler/ia32/instruction-selector-ia32.cc

bugdro… via monorail

unread,
Jul 10, 2018, 4:07:24 PM7/10/18
to v8-re...@googlegroups.com

Comment #79 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c79


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/a87c0cd106119ee39ff056cba5b9ab98cc63ebb9

commit a87c0cd106119ee39ff056cba5b9ab98cc63ebb9
Author: Bill Budge <bbu...@chromium.org>
Date: Tue Jul 10 20:06:07 2018

[wasm simd] Eliminate impossible code paths for ARM Dup shuffle

- Dup (broadcast) shuffles are always swizzles (single operand),
which are canonicalized to only use the first input, so we don't
need to check the index and switch operands.

Bug: v8:6020
Change-Id: I3ef8ba8071775dfbd21c0cab3fdf24db17f496bb
Reviewed-on: https://chromium-review.googlesource.com/1129540
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Commit-Queue: Bill Budge <bbu...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54367}
[modify] https://crrev.com/a87c0cd106119ee39ff056cba5b9ab98cc63ebb9/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/a87c0cd106119ee39ff056cba5b9ab98cc63ebb9/src/compiler/arm64/instruction-selector-arm64.cc

bugdro… via monorail

unread,
Jul 13, 2018, 5:55:22 PM7/13/18
to v8-re...@googlegroups.com

Comment #80 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c80


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/d950fc4705d60927501ca6ddeb70788e0572c286

commit d950fc4705d60927501ca6ddeb70788e0572c286
Author: Bill Budge <bbu...@chromium.org>
Date: Fri Jul 13 21:51:47 2018

[wasm simd] Fuzz test the shuffle opcode

- Reorganizes shuffle tests into tabular form.
- Adds a test that composes random numbers of random shuffles to
make new shuffles.
- Adds a test that generates functions to compute a complex expression
consisting of shuffles, and compares interpreter results to compiled
code results.
- Fixes a problem with temp register exhaustion on ARM 32-bit.
- Matches identity shuffles (returning first or second operand
unchanged) and uses EmitIdentity() for these.

Bug: v8:6020
Change-Id: Ie41c14fee52a7406b1d32e731e050096400e12f5
Reviewed-on: https://chromium-review.googlesource.com/1119567
Commit-Queue: Bill Budge <bbu...@chromium.org>
Reviewed-by: Jaroslav Sevcik <ja...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54446}
[modify] https://crrev.com/d950fc4705d60927501ca6ddeb70788e0572c286/src/compiler/arm/code-generator-arm.cc
[modify] https://crrev.com/d950fc4705d60927501ca6ddeb70788e0572c286/src/compiler/arm/instruction-selector-arm.cc
[modify] https://crrev.com/d950fc4705d60927501ca6ddeb70788e0572c286/src/compiler/arm64/instruction-selector-arm64.cc
[modify] https://crrev.com/d950fc4705d60927501ca6ddeb70788e0572c286/src/compiler/ia32/instruction-selector-ia32.cc
[modify] https://crrev.com/d950fc4705d60927501ca6ddeb70788e0572c286/test/cctest/wasm/test-run-wasm-simd.cc

bradnel… via monorail

unread,
Jul 15, 2018, 5:14:08 AM7/15/18
to v8-re...@googlegroups.com
Updates:
Cc: -brad...@chromium.org

Comment #81 on issue 6020 by bradn...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c81

(No comment was entered for this change.)

bugdro… via monorail

unread,
Nov 15, 2018, 1:29:47 AM11/15/18
to v8-re...@googlegroups.com

Comment #82 on issue 6020 by bugd...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c82


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/aba38b3c354e0dda7f6f73217d4b8dad850655a0

commit aba38b3c354e0dda7f6f73217d4b8dad850655a0
Author: Deepti Gandluri <gde...@chromium.org>
Date: Thu Nov 15 06:28:55 2018

[wasm] Update SIMD opcodes to match toolchain/spec

BUG:v8:6020

Change-Id: I289a43d834765635425276afb80c2361152fdcb0
Reviewed-on: https://chromium-review.googlesource.com/c/1336113
Commit-Queue: Deepti Gandluri <gde...@chromium.org>
Reviewed-by: Aseem Garg <asee...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57519}
[modify] https://crrev.com/aba38b3c354e0dda7f6f73217d4b8dad850655a0/src/wasm/wasm-opcodes.h
[modify] https://crrev.com/aba38b3c354e0dda7f6f73217d4b8dad850655a0/test/cctest/wasm/test-run-wasm-simd.cc

zel… via monorail

unread,
Jan 21, 2019, 11:31:18 AM1/21/19
to v8-re...@googlegroups.com

Comment #83 on issue 6020 by zel...@gmail.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c83

Any updates here, been a while. I have multiple products over here waiting on SIMD in Webassembly

ad… via monorail

unread,
Jan 22, 2019, 12:11:11 PM1/22/19
to v8-re...@googlegroups.com
Updates:
Cc: -gde...@chromium.org bbu...@chromium.org
Owner: gde...@chromium.org

Comment #84 on issue 6020 by ad...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c84


(No comment was entered for this change.)

gdee… via monorail

unread,
Jan 22, 2019, 12:56:30 PM1/22/19
to v8-re...@googlegroups.com

Comment #85 on issue 6020 by gde...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c85

There are a few moving parts to this - Moving the proposal forward(https://github.com/WebAssembly/simd), an implementation in the tools, and a browser implementation that this bug is tracking. The Browser engine implementation is mostly complete barring a few rough edges, and I think the same is true for the tools as well. This will be something that can be experimented with shortly. In V8, this is gated by --experimental-wasm-simd. Shipping this will still depend on the standardization of this feature, so feel free to engage in the github repository linked above.

soe… via monorail

unread,
Feb 19, 2019, 4:26:47 AM2/19/19
to v8-re...@googlegroups.com

Comment #86 on issue 6020 by soe...@zfaas.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c86

Any chance that this lands before PNaCl is retired later this year? This would help to narrow the performance gap between WebAssembly and PNaCl.

gdee… via monorail

unread,
Feb 20, 2019, 7:01:19 PM2/20/19
to v8-re...@googlegroups.com

Comment #87 on issue 6020 by gde...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c87

Depends on what you mean by lands - we now have toolchain support, as well as an implementation in the Browser, so this is something that can be experimented with right away. But this being out of experimental will depend on the standardization process, and may not coincide with PNaCl deprecation.

bvib… via monorail

unread,
Mar 3, 2019, 1:43:46 PM3/3/19
to v8-re...@googlegroups.com

Comment #88 on issue 6020 by bvib...@wikimedia.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c88

I'm having some good luck adapting the dav1d AV1 decoder's filter functions to Wasm SIMD, with ~13% improvement in total decode time with a fairly basic vectorization of the cdef filter function alone.

Definitely having trouble from issue 8927, which I've worked around by disabling autovectorization and making my explicit i16x8.splats always manipulate the parameter. Until nailing down my workaround I had a lot of mysterious non-deterministic breakages. :(

I should get a couple percent performance back once I can remove the splat workaround, and in the meantime I've got lots more functions to vectorize... Thanks everyone and keep up the good work! :)

bugdroid via monorail

unread,
Mar 8, 2019, 1:19:39 AM3/8/19
to v8-re...@googlegroups.com

Comment #89 on issue 6020 by bugdroid: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c89


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/43a197f13b91195740a5219e82966fcf6b268a76

commit 43a197f13b91195740a5219e82966fcf6b268a76
Author: Bill Budge <bbu...@chromium.org>
Date: Fri Mar 08 06:18:40 2019

[wasm simd] Refactor tests to check results in C++ code.

- Converts most integer vector tests to use globals (except Select)
so results can be checked in C++ code.
- Remove integer vector result checking macros.
- Add specializations of test CompareOps for floats, so we can use
BinOps for integer vector compare opcodes.
- Remove Run#format#CompareOpTests helper functions for integer vector
types. Use Run#BinOpTests helper function instead.

Bug: v8:6020
Change-Id: I968a71c874b028a750e1118cf51f6678cae90091
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1496281
Commit-Queue: Bill Budge <bbu...@chromium.org>
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60111}
[modify] https://crrev.com/43a197f13b91195740a5219e82966fcf6b268a76/test/cctest/wasm/test-run-wasm-simd.cc

bugdroid via monorail

unread,
Mar 26, 2019, 9:13:18 PM3/26/19
to v8-re...@googlegroups.com

Comment #90 on issue 6020 by bugdroid: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c90


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/1c378d02c12da8ca7658f49744f064e4234d18c2

commit 1c378d02c12da8ca7658f49744f064e4234d18c2
Author: Bill Budge <bbu...@chromium.org>
Date: Wed Mar 27 01:10:48 2019

[wasm simd] Fix F32x4Min/Max bug with signaling NaNs.

- Fixes a bug where signaling NaNs are converted to
Infinities rather than quiet NaNs.

Bug: v8:6020,v8:8639
Change-Id: I2601378f06f1987983f2b93e8970f401333073be
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1536911

Commit-Queue: Bill Budge <bbu...@chromium.org>
Reviewed-by: Deepti Gandluri <gde...@chromium.org>

bugdroid via monorail

unread,
May 2, 2019, 2:01:40 PM5/2/19
to v8-re...@googlegroups.com

Comment #91 on issue 6020 by bugdroid: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c91


The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src.git/+/11734cc47721811a12a6a4286f3790c11433d355

commit 11734cc47721811a12a6a4286f3790c11433d355
Author: Deepti Gandluri <gde...@chromium.org>
Date: Thu May 02 18:00:20 2019

Add feature flag for WebAssembly SIMD

Bug: v8:6020
Change-Id: Ie9b3f45d50a6362cdf64ee573c50241b1295d1d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1588525
Reviewed-by: Adam Klein <ad...@chromium.org>
Reviewed-by: Jochen Eisinger <joc...@chromium.org>
Commit-Queue: Deepti Gandluri <gde...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#656088}

[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/chrome/browser/about_flags.cc
[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/chrome/browser/flag-metadata.json
[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/content/public/common/content_features.cc
[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/content/public/common/content_features.h
[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/content/renderer/render_process_impl.cc
[modify] https://crrev.com/11734cc47721811a12a6a4286f3790c11433d355/tools/metrics/histograms/enums.xml

bugdroid via monorail

unread,
Jun 19, 2019, 4:46:43 PM6/19/19
to v8-re...@googlegroups.com

Comment #92 on issue 6020 by bugdroid: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c92


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8.git/+/d353d61857c1a34e27c08d287957da8ba454c323

commit d353d61857c1a34e27c08d287957da8ba454c323
Author: Ng Zhi An <zh...@chromium.org>
Date: Wed Jun 19 20:44:52 2019

Fix macro to generate SIMD instructions for test

Bug: v8:6020
Change-Id: Ic33f698973edd8b6bcb8725cc86b4431374fb7b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1666450
Auto-Submit: Zhi An Ng <zh...@chromium.org>
Reviewed-by: Deepti Gandluri <gde...@chromium.org>
Commit-Queue: Zhi An Ng <zh...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62298}

[modify] https://crrev.com/d353d61857c1a34e27c08d287957da8ba454c323/test/cctest/wasm/test-run-wasm-simd.cc

soe… via monorail

unread,
Dec 14, 2019, 6:42:19 PM12/14/19
to v8-re...@googlegroups.com

Comment #93 on issue 6020 by soe...@zfaas.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c93

Is there a chance to get this as an origin trial?

m… via monorail

unread,
Dec 17, 2019, 6:56:59 PM12/17/19
to v8-re...@googlegroups.com

Comment #94 on issue 6020 by m...@mko.io: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c94

Is there a way to unflag the feature for testing?

z… via monorail

unread,
Dec 17, 2019, 7:18:50 PM12/17/19
to v8-re...@googlegroups.com

Comment #95 on issue 6020 by zh...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c95

Re comment#94, Not sure what you mean by "unflag the feature".

For local testing, you can set the "WebAssembly SIMD support." in chrome://flags to run WebAssembly from a web page.
Otherwise if you have v8 locally, you can pass the `--experimental-wasm-simd` flag to d8 to run a JavaScript file.

gdee… via monorail

unread,
Dec 17, 2019, 7:28:57 PM12/17/19
to v8-re...@googlegroups.com

Comment #96 on issue 6020 by gde...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c96

We've considered pushing this to Origin trial in the past, but there wasn't enough momentum to justify it. Usually the purpose of Origin trials is to get application feedback, and we've been getting them from experimental users so far. soren@, could you elaborate why you are looking for an origin trial? If you would be willing to share, I'm also interested in how you are using SIMD.

m… via monorail

unread,
Dec 17, 2019, 11:00:43 PM12/17/19
to v8-re...@googlegroups.com

Comment #97 on issue 6020 by m...@mko.io: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c97

Thank you for your instruction

soe… via monorail

unread,
Dec 17, 2019, 11:03:35 PM12/17/19
to v8-re...@googlegroups.com

Comment #98 on issue 6020 by soe...@zfaas.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c98

Thanks for getting back to my inquiry!

It basically comes from our (Clipchamp's) specific needs, which is fast, video decoding and encoding in the browser. We used to use PNaCl for that, which had some limited form of SIMD support. Even with some very modest effort going into adopting PNaCl's vector intrinsics, we were able to speed up our video encoding performance by some ~50%. Naturally we would like to apply the same optimisations to the WebAssembly build of our video transcoding stack. Quite likely going beyond that, where the upside potential over a non-SIMD build would probably be an up to x8 performance uplift.

Our impression is that rolling out WebAssembly SIMD support in Chrome is currently hampered by the standardization process, which may still result in late-stage ABI changes. Is that so or are there other reasons (eg: stability, security, ...) that are holding WebAssembly SIMD support back?

What an origin trial of SIMD would give us -- beyond (in the long term) a significant performance uplift for our end users and the improved experience that goes along with it -- is feedback from millions of Clipchamp users, which should be good for an impression of the real-life benefits of SIMD optimisations for browser workloads. Our users are from different domains (education, agencies, SMEs, corporate, etc.) and mostly use Clipchamp for commercial purposes. They run a diverse set of client devices, where we strive to offer an interactive experience even for low-end devices. So far, we can use WebAssembly for some workloads (eg., exporting a video editing projects), but not for others (real-time playback of a project), which is due to the fact that the non-SIMD video decoding performance is still too slow for high resolutions on most devices.

To sum it up, we hope to deliver and measure real-life improvements of SIMD for a highly interactive workload (video editing).

Soeren

mrccham… via monorail

unread,
Mar 3, 2020, 3:04:00 PM3/3/20
to v8-re...@googlegroups.com

Comment #99 on issue 6020 by mrccham...@gmail.com: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c99

Hello,

Sorry in advance if this is the wrong thread, but I have issues with the f32x4.replace_lane instruction on ARM 64 (no issue at all with the same code on intel 64).
No error is thrown but nothing happens (v128 variable upon the stack is the original one) when the f32 replacement value is provided through a f32.load operator (ok if directly provided with a f32.const instruction).


Kind regards,

Marc

gdee… via monorail

unread,
Mar 3, 2020, 3:11:54 PM3/3/20
to v8-re...@googlegroups.com

Comment #100 on issue 6020 by gde...@chromium.org: [wasm] Implement WebAssembly SIMD prototype
https://bugs.chromium.org/p/v8/issues/detail?id=6020#c100

Hi Marc, could you file a new issue (button on top left) for what you are seeing? Please attach a repro/test case as well as we test f32x4.replace_lane in v8/toolchain tests so it should work on all platforms. It'll be easier to tell what's going wrong with a repro case. Thanks!
It is loading more messages.
0 new messages