| Index: src/compiler/simd-scalar-lowering.cc
|
| diff --git a/src/compiler/simd-scalar-lowering.cc b/src/compiler/simd-scalar-lowering.cc
|
| index 601ccb20a2bab27682adffe0140d2860691ddd5e..87a5e07281f4462d8406edd181bc218dd15e1ff7 100644
|
| --- a/src/compiler/simd-scalar-lowering.cc
|
| +++ b/src/compiler/simd-scalar-lowering.cc
|
| @@ -72,16 +72,26 @@ void SimdScalarLowering::LowerGraph() {
|
| }
|
|
|
| #define FOREACH_INT32X4_OPCODE(V) \
|
| - V(Int32x4Add) \
|
| - V(Int32x4ExtractLane) \
|
| V(Int32x4Splat) \
|
| - V(Int32x4ReplaceLane)
|
| + V(Int32x4ExtractLane) \
|
| + V(Int32x4ReplaceLane) \
|
| + V(Int32x4Add) \
|
| + V(Int32x4Sub) \
|
| + V(Int32x4Mul) \
|
| + V(Simd128And) \
|
| + V(Simd128Or) \
|
| + V(Simd128Xor)
|
|
|
| #define FOREACH_FLOAT32X4_OPCODE(V) \
|
| - V(Float32x4Add) \
|
| - V(Float32x4ExtractLane) \
|
| V(Float32x4Splat) \
|
| - V(Float32x4ReplaceLane)
|
| + V(Float32x4ExtractLane) \
|
| + V(Float32x4ReplaceLane) \
|
| + V(Float32x4Add) \
|
| + V(Float32x4Sub) \
|
| + V(Float32x4Mul) \
|
| + V(Float32x4Div) \
|
| + V(Float32x4Min) \
|
| + V(Float32x4Max)
|
|
|
| void SimdScalarLowering::SetLoweredType(Node* node, Node* output) {
|
| switch (node->opcode()) {
|
| @@ -377,14 +387,30 @@ void SimdScalarLowering::LowerNode(Node* node) {
|
| }
|
| break;
|
| }
|
| - case IrOpcode::kInt32x4Add: {
|
| - LowerBinaryOp(node, rep_type, machine()->Int32Add());
|
| - break;
|
| - }
|
| - case IrOpcode::kFloat32x4Add: {
|
| - LowerBinaryOp(node, rep_type, machine()->Float32Add());
|
| - break;
|
| - }
|
| +#define I32X4_BINOP_CASE(opcode, instruction) \
|
| + case IrOpcode::opcode: { \
|
| + LowerBinaryOp(node, rep_type, machine()->instruction()); \
|
| + break; \
|
| + }
|
| + I32X4_BINOP_CASE(kInt32x4Add, Int32Add)
|
| + I32X4_BINOP_CASE(kInt32x4Sub, Int32Sub)
|
| + I32X4_BINOP_CASE(kInt32x4Mul, Int32Mul)
|
| + I32X4_BINOP_CASE(kSimd128And, Word32And)
|
| + I32X4_BINOP_CASE(kSimd128Or, Word32Or)
|
| + I32X4_BINOP_CASE(kSimd128Xor, Word32Xor)
|
| +#undef I32X4_BINOP_CASE
|
| +#define F32X4_BINOP_CASE(name) \
|
| + case IrOpcode::kFloat32x4##name: { \
|
| + LowerBinaryOp(node, rep_type, machine()->Float32##name()); \
|
| + break; \
|
| + }
|
| + F32X4_BINOP_CASE(Add)
|
| + F32X4_BINOP_CASE(Sub)
|
| + F32X4_BINOP_CASE(Mul)
|
| + F32X4_BINOP_CASE(Div)
|
| + F32X4_BINOP_CASE(Min)
|
| + F32X4_BINOP_CASE(Max)
|
| +#undef F32X4_BINOP_CASE
|
| case IrOpcode::kInt32x4Splat:
|
| case IrOpcode::kFloat32x4Splat: {
|
| Node* rep_node[kMaxLanes];
|
|
|