|
|
DescriptionTurbofan: 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. #
Messages
Total messages: 47 (21 generated)
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. LOG=N BUG=v8:4124 ========== to ========== Turbofan: Add MachineOperators for SIMD. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. Omitted functions are commented out. The rationale for omission is: - Omit UInt constructors, as int and uint aren't distinguished in wasm. - Omit Check functions. - Omit 'FromXxxBits' functions. These are essentially casts. - Omit simple Load / Store functions. Existing load / store with SIMD type should work. - Omit Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ==========
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. Omitted functions are commented out. The rationale for omission is: - Omit UInt constructors, as int and uint aren't distinguished in wasm. - Omit Check functions. - Omit 'FromXxxBits' functions. These are essentially casts. - Omit simple Load / Store functions. Existing load / store with SIMD type should work. - Omit Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ========== to ========== Turbofan: Add MachineOperators for SIMD. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. Omitted functions are commented out. The rationale for omission is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ==========
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. Omitted functions are commented out. The rationale for omission is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ========== to ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. Omitted functions are commented out. The rationale for omission is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ==========
bbudge@chromium.org changed reviewers: + bradnelson@chromium.org, gdeepti@chromium.org, titzer@chromium.org
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. Omitted functions are commented out. The rationale for omission is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ========== to ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ==========
bradnelson@google.com changed reviewers: + bradnelson@google.com, mtrofin@chromium.org
I think this is approximately the right list, but we can refine as we go. Having this in will unblock some parallel work on this. Mircea, would you mind taking a look, as we'll need your signoff, since your the sole src/compiler owner here. titzer is off for a bit. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:354: // skip Float32x4Load I think we might want load/store as ops, until we generalize a regular load to handle these. But we can add in when we get to it. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/typer.cc#n... src/compiler/typer.cc:2816: Type* Typer::Visitor::TypeBool16x8Swizzle(Node* node) { return Type::Simd(); } I suspect these might require a separate type, but this is ok for now.
https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:318: // SIMD operators. To fit with the V8 current practice, consider replacing the list of declarations with a few macros. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:321: // skip Float32x4Check here and elsewhere, please add a TODO note in front of the skip https://codereview.chromium.org/1848433003/diff/20001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/typer.cc#n... src/compiler/typer.cc:2458: // SIMD type methods. Consider macro-ising these. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/verifier.cc File src/compiler/verifier.cc (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/verifier.c... src/compiler/verifier.cc:964: case IrOpcode::kCreateFloat32x4: perhaps macroise this?
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. LOG=N BUG=v8:4124 ========== to ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 ==========
https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:318: // SIMD operators. On 2016/03/31 21:36:04, Mircea Trofin wrote: > To fit with the V8 current practice, consider replacing the list of > declarations with a few macros. Done. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:321: // skip Float32x4Check On 2016/03/31 21:36:04, Mircea Trofin wrote: > here and elsewhere, please add a TODO note in front of the skip These have been removed and listed in the issue description for reference. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:354: // skip Float32x4Load On 2016/03/31 21:20:48, bradn wrote: > I think we might want load/store as ops, until we generalize a regular load to > handle these. But we can add in when we get to it. Acknowledged. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/typer.cc File src/compiler/typer.cc (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/typer.cc#n... src/compiler/typer.cc:2458: // SIMD type methods. On 2016/03/31 21:36:04, Mircea Trofin wrote: > Consider macro-ising these. Done. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/typer.cc#n... src/compiler/typer.cc:2816: Type* Typer::Visitor::TypeBool16x8Swizzle(Node* node) { return Type::Simd(); } On 2016/03/31 21:20:48, bradn wrote: > I suspect these might require a separate type, but this is ok for now. Acknowledged. https://codereview.chromium.org/1848433003/diff/20001/src/compiler/verifier.cc File src/compiler/verifier.cc (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/verifier.c... src/compiler/verifier.cc:964: case IrOpcode::kCreateFloat32x4: On 2016/03/31 21:36:04, Mircea Trofin wrote: > perhaps macroise this? Done.
lgtm
titzer@chromium.org changed reviewers: + bmeurer@chromium.org
+bmeurer if simd-curious https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:318: // SIMD operators. On 2016/04/01 00:57:53, bbudge wrote: > On 2016/03/31 21:36:04, Mircea Trofin wrote: > > To fit with the V8 current practice, consider replacing the list of > > declarations with a few macros. > > Done. Actually, Operator builders is one place where we explicitly don't do the macroification, since we want to have the methods declared explicitly. We do macro-ify the implementations in the .cc files, though, e.g. to cache them. I have a slight temptation to propose adding a simd-operator-builder.{h,cc}, but not sure if that will create more trouble than it saves.
LGTM from my side.
On 2016/04/01 10:32:48, Benedikt Meurer wrote: > LGTM from my side. lgtm if we can have the full list back in machine-operator.h
The CQ bit was checked by bbudge@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from mtrofin@chromium.org, bmeurer@chromium.org, titzer@chromium.org Link to the patchset: https://codereview.chromium.org/1848433003/#ps70001 (title: "Rebase.")
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
Message was sent while issue was closed.
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 ========== to ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 ==========
Message was sent while issue was closed.
Committed patchset #5 (id:70001)
Message was sent while issue was closed.
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 ========== to ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213} ==========
Message was sent while issue was closed.
Patchset 5 (id:??) landed as https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213}
Message was sent while issue was closed.
Description was changed from ========== Turbofan: Add MachineOperators for SIMD. IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213} ========== to ========== 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: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213} ==========
Message was sent while issue was closed.
https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1848433003/diff/20001/src/compiler/machine-op... src/compiler/machine-operator.h:318: // SIMD operators. On 2016/04/01 09:30:10, titzer wrote: > On 2016/04/01 00:57:53, bbudge wrote: > > On 2016/03/31 21:36:04, Mircea Trofin wrote: > > > To fit with the V8 current practice, consider replacing the list of > > > declarations with a few macros. > > > > Done. > > Actually, Operator builders is one place where we explicitly don't do the > macroification, since we want to have the methods declared explicitly. We do > macro-ify the implementations in the .cc files, though, e.g. to cache them. > > I have a slight temptation to propose adding a simd-operator-builder.{h,cc}, but > not sure if that will create more trouble than it saves. > Done.
Message was sent while issue was closed.
A revert of this CL (patchset #5 id:70001) has been created in https://codereview.chromium.org/1850373002/ by machenbach@chromium.org. The reason for reverting is: [Sheriff] Speculative revert. Compile now times out on msan: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20....
Message was sent while issue was closed.
On 2016/04/02 06:35:54, Michael Achenbach (OOO) wrote: > A revert of this CL (patchset #5 id:70001) has been created in > https://codereview.chromium.org/1850373002/ by mailto:machenbach@chromium.org. > > The reason for reverting is: [Sheriff] Speculative revert. Compile now times out > on msan: > https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20.... Will reland if there's no effect and try to clobber.
Message was sent while issue was closed.
Meh Revert didn't help. Clobber and nuke didn't help. Guess I'll reland this for now and investigate more next week. Sad face that this bot is now apparently dead.
Message was sent while issue was closed.
On 2016/04/02 07:02:09, Michael Achenbach (OOO) wrote: > Meh > > Revert didn't help. > Clobber and nuke didn't help. > > Guess I'll reland this for now and investigate more next week. Sad face that > this bot is now apparently dead. It looks like it hangs on linking the unittests.
Message was sent while issue was closed.
machenbach@chromium.org changed reviewers: + machenbach@chromium.org
Message was sent while issue was closed.
On 2016/04/02 07:02:58, Michael Achenbach (OOO) wrote: > On 2016/04/02 07:02:09, Michael Achenbach (OOO) wrote: > > Meh > > > > Revert didn't help. > > Clobber and nuke didn't help. > > > > Guess I'll reland this for now and investigate more next week. Sad face that > > this bot is now apparently dead. > > It looks like it hangs on linking the unittests. More findings: Revert did help. I was just not patient enough. It looks like also without this patch we're hitting a very slow compilation unit: http://chromium-build-stats.appspot.com/ninja_log/2016/04/02/slave30-c3/ninja... See also this bug: https://bugs.chromium.org/p/v8/issues/detail?id=4856 Maybe with this CL it gets even slower and times out. I'll redo the revert to get the bot green for now.
Message was sent while issue was closed.
Description was changed from ========== 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: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213} ========== to ========== 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 and equality predicates for int types, load/store for all types. 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 Simd128Equal Simd128NotEqual LOG=N BUG=v8:4124 Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213} ==========
Description was changed from ========== 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 and equality predicates for int types, load/store for all types. 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 Simd128Equal Simd128NotEqual LOG=N BUG=v8:4124 Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 Cr-Commit-Position: refs/heads/master@{#35213} ========== to ========== 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. 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} ==========
Description was changed from ========== 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. 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} ========== to ========== 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} ==========
On 2016/04/02 08:50:37, Michael Achenbach wrote: > On 2016/04/02 07:02:58, Michael Achenbach (OOO) wrote: > > On 2016/04/02 07:02:09, Michael Achenbach (OOO) wrote: > > > Meh > > > > > > Revert didn't help. > > > Clobber and nuke didn't help. > > > > > > Guess I'll reland this for now and investigate more next week. Sad face that > > > this bot is now apparently dead. > > > > It looks like it hangs on linking the unittests. > > More findings: > Revert did help. I was just not patient enough. It looks like also without this > patch we're hitting a very slow compilation unit: > http://chromium-build-stats.appspot.com/ninja_log/2016/04/02/slave30-c3/ninja... > > See also this bug: https://bugs.chromium.org/p/v8/issues/detail?id=4856 > > Maybe with this CL it gets even slower and times out. I'll redo the revert to > get the bot green for now. Clang has rolled. Hopefully this fixes the build slowness. NOTE: The machine operators have been changed. We don't need separate Load/Sore operators for int/float types, or separate logical operators for int types, since they are identical. PTAL
Still LGTM, good to go :-)
Please hold on. Clang hasn't rolled into v8 yet (only chromium). Blocked on http://crbug.com/v8/4928 - help welcome!
On 2016/04/20 07:10:56, Michael Achenbach wrote: > Please hold on. Clang hasn't rolled into v8 yet (only chromium). Blocked on > http://crbug.com/v8/4928 - help welcome! See https://bugs.chromium.org/p/v8/issues/detail?id=4856#c19 - clang has rolled, but MSAN with arm64 is still quite slow. Could you compile locally with the latest head and see where we stand?
On 2016/04/22 06:34:38, Michael Achenbach wrote: > On 2016/04/20 07:10:56, Michael Achenbach wrote: > > Please hold on. Clang hasn't rolled into v8 yet (only chromium). Blocked on > > http://crbug.com/v8/4928 - help welcome! > > See https://bugs.chromium.org/p/v8/issues/detail?id=4856#c19 - clang has rolled, > but MSAN with arm64 is still quite slow. Could you compile locally with the > latest head and see where we stand? I tested locally and I think the latest clang roll unblocked this CL. See https://bugs.chromium.org/p/v8/issues/detail?id=4856#c21 - feel free to reland.
On 2016/04/22 06:34:38, Michael Achenbach wrote: > On 2016/04/20 07:10:56, Michael Achenbach wrote: > > Please hold on. Clang hasn't rolled into v8 yet (only chromium). Blocked on > > http://crbug.com/v8/4928 - help welcome! > > See https://bugs.chromium.org/p/v8/issues/detail?id=4856#c19 - clang has rolled, > but MSAN with arm64 is still quite slow. Could you compile locally with the > latest head and see where we stand? I tested locally and I think the latest clang roll unblocked this CL. See https://bugs.chromium.org/p/v8/issues/detail?id=4856#c21 - feel free to reland.
The CQ bit was checked by bbudge@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from mtrofin@chromium.org, titzer@chromium.org, bmeurer@chromium.org Link to the patchset: https://codereview.chromium.org/1848433003/#ps130001 (title: "Rebase.")
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
Message was sent while issue was closed.
Description was changed from ========== 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} ========== to ========== 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} ==========
Message was sent while issue was closed.
Committed patchset #8 (id:130001)
Message was sent while issue was closed.
Description was changed from ========== 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} ========== to ========== 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} ==========
Message was sent while issue was closed.
Patchset 8 (id:??) landed as https://crrev.com/1c94bed6ba56bc8a179d161e81b778a1921e7969 Cr-Commit-Position: refs/heads/master@{#35951} |