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

Issue 1848433003: Turbofan: Add MachineOperators for SIMD. (Closed)

Created:
4 years, 8 months ago by bbudge
Modified:
4 years, 7 months ago
CC:
v8-reviews_googlegroups.com, Nico
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Turbofan: Add MachineOperators for SIMD. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - Check functions. - 'FromXxxBits' functions. These are essentially casts. - UInt constructors. int and uint aren't distinguished in wasm. - Uint functions, except where their behavior is bitwise different from the Int function. Some operators are typeless, i.e. they are the same for multiple related types, e.g. logical ops for int types, load/store for float and int types. Use a 'Simd128' prefix for these operators. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Bool8x16Check Generic operators for Float, Int types: Simd128Load Simd128Load1 Simd128Load2 Simd128Load3 Simd128Store Simd128Store1 Simd128Store2 Simd128Store3 Generic operators for Int types: Simd128And Simd128Or Simd128Xor Simd128Not LOG=N BUG=v8:4124 Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213} Committed: https://crrev.com/1c94bed6ba56bc8a179d161e81b778a1921e7969 Cr-Commit-Position: refs/heads/master@{#35951}

Patch Set 1 #

Patch Set 2 : Compiles #

Total comments: 14

Patch Set 3 : Macroized for typer. #

Patch Set 4 : De-macroize machine-operator.h #

Patch Set 5 : Rebase. #

Patch Set 6 : Rebase. #

Patch Set 7 : Change equivalent typed operators to typeless 'Simd128' ones. #

Patch Set 8 : Rebase. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+569 lines, -6 lines) Patch
M src/compiler/machine-operator.h View 1 2 3 4 5 6 7 1 chunk +184 lines, -0 lines 0 comments Download
M src/compiler/machine-operator.cc View 1 2 3 4 5 6 7 1 chunk +173 lines, -1 line 0 comments Download
M src/compiler/opcodes.h View 1 2 3 4 5 6 7 1 chunk +188 lines, -4 lines 0 comments Download
M src/compiler/typer.cc View 1 2 3 4 5 6 7 3 chunks +19 lines, -1 line 0 comments Download
M src/compiler/verifier.cc View 1 2 3 4 5 6 7 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 47 (21 generated)
bbudge
4 years, 8 months ago (2016-03-31 20:17:36 UTC) #5
bradn
I think this is approximately the right list, but we can refine as we go. ...
4 years, 8 months ago (2016-03-31 21:20:48 UTC) #8
Mircea Trofin
https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h#newcode318 src/compiler/machine-operator.h:318: // SIMD operators. To fit with the V8 current ...
4 years, 8 months ago (2016-03-31 21:36:04 UTC) #9
bbudge
https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h#newcode318 src/compiler/machine-operator.h:318: // SIMD operators. On 2016/03/31 21:36:04, Mircea Trofin wrote: ...
4 years, 8 months ago (2016-04-01 00:57:53 UTC) #11
Mircea Trofin
lgtm
4 years, 8 months ago (2016-04-01 02:22:24 UTC) #12
titzer
+bmeurer if simd-curious https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h#newcode318 src/compiler/machine-operator.h:318: // SIMD operators. On 2016/04/01 00:57:53, ...
4 years, 8 months ago (2016-04-01 09:30:11 UTC) #14
Benedikt Meurer
LGTM from my side.
4 years, 8 months ago (2016-04-01 10:32:48 UTC) #15
titzer
On 2016/04/01 10:32:48, Benedikt Meurer wrote: > LGTM from my side. lgtm if we can ...
4 years, 8 months ago (2016-04-01 15:37:06 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1848433003/70001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1848433003/70001
4 years, 8 months ago (2016-04-01 17:38:54 UTC) #19
commit-bot: I haz the power
Committed patchset #5 (id:70001)
4 years, 8 months ago (2016-04-01 18:07:25 UTC) #21
commit-bot: I haz the power
Patchset 5 (id:??) landed as https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213}
4 years, 8 months ago (2016-04-01 18:09:30 UTC) #23
bbudge
https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-operator.h#newcode318 src/compiler/machine-operator.h:318: // SIMD operators. On 2016/04/01 09:30:10, titzer wrote: > ...
4 years, 8 months ago (2016-04-01 18:12:03 UTC) #25
Michael Achenbach
A revert of this CL (patchset #5 id:70001) has been created in https://codereview.chromium.org/1850373002/ by machenbach@chromium.org. ...
4 years, 8 months ago (2016-04-02 06:35:54 UTC) #26
Michael Achenbach
On 2016/04/02 06:35:54, Michael Achenbach (OOO) wrote: > A revert of this CL (patchset #5 ...
4 years, 8 months ago (2016-04-02 06:46:52 UTC) #27
Michael Achenbach
Meh Revert didn't help. Clobber and nuke didn't help. Guess I'll reland this for now ...
4 years, 8 months ago (2016-04-02 07:02:09 UTC) #28
Michael Achenbach
On 2016/04/02 07:02:09, Michael Achenbach (OOO) wrote: > Meh > > Revert didn't help. > ...
4 years, 8 months ago (2016-04-02 07:02:58 UTC) #29
Michael Achenbach
On 2016/04/02 07:02:58, Michael Achenbach (OOO) wrote: > On 2016/04/02 07:02:09, Michael Achenbach (OOO) wrote: ...
4 years, 8 months ago (2016-04-02 08:50:37 UTC) #31
bbudge
On 2016/04/02 08:50:37, Michael Achenbach wrote: > On 2016/04/02 07:02:58, Michael Achenbach (OOO) wrote: > ...
4 years, 8 months ago (2016-04-20 00:12:45 UTC) #35
Benedikt Meurer
Still LGTM, good to go :-)
4 years, 8 months ago (2016-04-20 04:08:28 UTC) #36
Michael Achenbach
Please hold on. Clang hasn't rolled into v8 yet (only chromium). Blocked on http://crbug.com/v8/4928 - ...
4 years, 8 months ago (2016-04-20 07:10:56 UTC) #37
Michael Achenbach
On 2016/04/20 07:10:56, Michael Achenbach wrote: > Please hold on. Clang hasn't rolled into v8 ...
4 years, 8 months ago (2016-04-22 06:34:38 UTC) #38
Michael Achenbach
On 2016/04/22 06:34:38, Michael Achenbach wrote: > On 2016/04/20 07:10:56, Michael Achenbach wrote: > > ...
4 years, 8 months ago (2016-04-26 10:03:10 UTC) #39
Michael Achenbach
On 2016/04/22 06:34:38, Michael Achenbach wrote: > On 2016/04/20 07:10:56, Michael Achenbach wrote: > > ...
4 years, 8 months ago (2016-04-26 10:03:13 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1848433003/130001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1848433003/130001
4 years, 7 months ago (2016-05-02 21:14:44 UTC) #43
commit-bot: I haz the power
Committed patchset #8 (id:130001)
4 years, 7 months ago (2016-05-02 21:47:23 UTC) #45
commit-bot: I haz the power
4 years, 7 months ago (2016-05-02 21:48:44 UTC) #47
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/1c94bed6ba56bc8a179d161e81b778a1921e7969
Cr-Commit-Position: refs/heads/master@{#35951}

Powered by Google App Engine
This is Rietveld 408576698