Index: src/compiler/simd-scalar-lowering.cc |
diff --git a/src/compiler/simd-scalar-lowering.cc b/src/compiler/simd-scalar-lowering.cc |
index bb1b5ab910364028b1c726f3e347e14db7150236..8f967788db7dcea548cbb97022dc798a774690a6 100644 |
--- a/src/compiler/simd-scalar-lowering.cc |
+++ b/src/compiler/simd-scalar-lowering.cc |
@@ -67,58 +67,58 @@ void SimdScalarLowering::LowerGraph() { |
} |
#define FOREACH_INT32X4_OPCODE(V) \ |
- V(Int32x4Splat) \ |
- V(Int32x4ExtractLane) \ |
- V(Int32x4ReplaceLane) \ |
- V(Int32x4Neg) \ |
- V(Simd128Not) \ |
- V(Int32x4Add) \ |
- V(Int32x4Sub) \ |
- V(Int32x4Mul) \ |
- V(Int32x4Min) \ |
- V(Int32x4Max) \ |
- V(Uint32x4Min) \ |
- V(Uint32x4Max) \ |
- V(Simd128And) \ |
- V(Simd128Or) \ |
- V(Simd128Xor) \ |
- V(Int32x4FromFloat32x4) \ |
- V(Uint32x4FromFloat32x4) |
+ V(I32x4Splat) \ |
+ V(I32x4ExtractLane) \ |
+ V(I32x4ReplaceLane) \ |
+ V(I32x4SConvertF32x4) \ |
+ V(I32x4UConvertF32x4) \ |
+ V(I32x4Neg) \ |
+ V(I32x4Add) \ |
+ V(I32x4Sub) \ |
+ V(I32x4Mul) \ |
+ V(I32x4MinS) \ |
+ V(I32x4MaxS) \ |
+ V(I32x4MinU) \ |
+ V(I32x4MaxU) \ |
+ V(S128And) \ |
+ V(S128Or) \ |
+ V(S128Xor) \ |
+ V(S128Not) |
#define FOREACH_FLOAT32X4_OPCODE(V) \ |
- V(Float32x4Splat) \ |
- V(Float32x4ExtractLane) \ |
- V(Float32x4ReplaceLane) \ |
- V(Float32x4Abs) \ |
- V(Float32x4Neg) \ |
- V(Float32x4Add) \ |
- V(Float32x4Sub) \ |
- V(Float32x4Mul) \ |
- V(Float32x4Div) \ |
- V(Float32x4Min) \ |
- V(Float32x4Max) \ |
- V(Float32x4FromInt32x4) \ |
- V(Float32x4FromUint32x4) |
+ V(F32x4Splat) \ |
+ V(F32x4ExtractLane) \ |
+ V(F32x4ReplaceLane) \ |
+ V(F32x4SConvertI32x4) \ |
+ V(F32x4UConvertI32x4) \ |
+ V(F32x4Abs) \ |
+ V(F32x4Neg) \ |
+ V(F32x4Add) \ |
+ V(F32x4Sub) \ |
+ V(F32x4Mul) \ |
+ V(F32x4Div) \ |
+ V(F32x4Min) \ |
+ V(F32x4Max) |
#define FOREACH_FLOAT32X4_TO_SIMD1X4OPCODE(V) \ |
- V(Float32x4Equal) \ |
- V(Float32x4NotEqual) \ |
- V(Float32x4LessThan) \ |
- V(Float32x4LessThanOrEqual) \ |
- V(Float32x4GreaterThan) \ |
- V(Float32x4GreaterThanOrEqual) |
+ V(F32x4Eq) \ |
+ V(F32x4Ne) \ |
+ V(F32x4Lt) \ |
+ V(F32x4Le) \ |
+ V(F32x4Gt) \ |
+ V(F32x4Ge) |
#define FOREACH_INT32X4_TO_SIMD1X4OPCODE(V) \ |
- V(Int32x4Equal) \ |
- V(Int32x4NotEqual) \ |
- V(Int32x4LessThan) \ |
- V(Int32x4LessThanOrEqual) \ |
- V(Int32x4GreaterThan) \ |
- V(Int32x4GreaterThanOrEqual) \ |
- V(Uint32x4LessThan) \ |
- V(Uint32x4LessThanOrEqual) \ |
- V(Uint32x4GreaterThan) \ |
- V(Uint32x4GreaterThanOrEqual) |
+ V(I32x4Eq) \ |
+ V(I32x4Ne) \ |
+ V(I32x4LtS) \ |
+ V(I32x4LeS) \ |
+ V(I32x4GtS) \ |
+ V(I32x4GeS) \ |
+ V(I32x4LtU) \ |
+ V(I32x4LeU) \ |
+ V(I32x4GtU) \ |
+ V(I32x4GeU) |
void SimdScalarLowering::SetLoweredType(Node* node, Node* output) { |
switch (node->opcode()) { |
@@ -142,18 +142,18 @@ void SimdScalarLowering::SetLoweredType(Node* node, Node* output) { |
default: { |
switch (output->opcode()) { |
FOREACH_FLOAT32X4_TO_SIMD1X4OPCODE(CASE_STMT) |
- case IrOpcode::kFloat32x4FromInt32x4: |
- case IrOpcode::kFloat32x4FromUint32x4: { |
+ case IrOpcode::kF32x4SConvertI32x4: |
+ case IrOpcode::kF32x4UConvertI32x4: { |
replacements_[node->id()].type = SimdType::kInt32; |
break; |
} |
FOREACH_INT32X4_TO_SIMD1X4OPCODE(CASE_STMT) |
- case IrOpcode::kInt32x4FromFloat32x4: |
- case IrOpcode::kUint32x4FromFloat32x4: { |
+ case IrOpcode::kI32x4SConvertF32x4: |
+ case IrOpcode::kI32x4UConvertF32x4: { |
replacements_[node->id()].type = SimdType::kFloat32; |
break; |
} |
- case IrOpcode::kSimd32x4Select: { |
+ case IrOpcode::kS32x4Select: { |
replacements_[node->id()].type = SimdType::kSimd1x4; |
break; |
} |
@@ -573,30 +573,30 @@ void SimdScalarLowering::LowerNode(Node* node) { |
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) |
+ I32X4_BINOP_CASE(kI32x4Add, Int32Add) |
+ I32X4_BINOP_CASE(kI32x4Sub, Int32Sub) |
+ I32X4_BINOP_CASE(kI32x4Mul, Int32Mul) |
+ I32X4_BINOP_CASE(kS128And, Word32And) |
+ I32X4_BINOP_CASE(kS128Or, Word32Or) |
+ I32X4_BINOP_CASE(kS128Xor, Word32Xor) |
#undef I32X4_BINOP_CASE |
- case IrOpcode::kInt32x4Max: { |
+ case IrOpcode::kI32x4MaxS: { |
LowerIntMinMax(node, machine()->Int32LessThan(), true); |
break; |
} |
- case IrOpcode::kInt32x4Min: { |
+ case IrOpcode::kI32x4MinS: { |
LowerIntMinMax(node, machine()->Int32LessThan(), false); |
break; |
} |
- case IrOpcode::kUint32x4Max: { |
+ case IrOpcode::kI32x4MaxU: { |
LowerIntMinMax(node, machine()->Uint32LessThan(), true); |
break; |
} |
- case IrOpcode::kUint32x4Min: { |
+ case IrOpcode::kI32x4MinU: { |
LowerIntMinMax(node, machine()->Uint32LessThan(), false); |
break; |
} |
- case IrOpcode::kInt32x4Neg: { |
+ case IrOpcode::kI32x4Neg: { |
DCHECK(node->InputCount() == 1); |
Node** rep = GetReplacementsWithType(node->InputAt(0), rep_type); |
Node* rep_node[kMaxLanes]; |
@@ -607,7 +607,7 @@ void SimdScalarLowering::LowerNode(Node* node) { |
ReplaceNode(node, rep_node); |
break; |
} |
- case IrOpcode::kSimd128Not: { |
+ case IrOpcode::kS128Not: { |
DCHECK(node->InputCount() == 1); |
Node** rep = GetReplacementsWithType(node->InputAt(0), rep_type); |
Node* rep_node[kMaxLanes]; |
@@ -618,28 +618,28 @@ void SimdScalarLowering::LowerNode(Node* node) { |
ReplaceNode(node, rep_node); |
break; |
} |
- case IrOpcode::kInt32x4FromFloat32x4: { |
+ case IrOpcode::kI32x4SConvertF32x4: { |
LowerConvertFromFloat(node, true); |
break; |
} |
- case IrOpcode::kUint32x4FromFloat32x4: { |
+ case IrOpcode::kI32x4UConvertF32x4: { |
LowerConvertFromFloat(node, false); |
break; |
} |
- case IrOpcode::kInt32x4ShiftLeftByScalar: { |
+ case IrOpcode::kI32x4Shl: { |
LowerShiftOp(node, machine()->Word32Shl()); |
break; |
} |
- case IrOpcode::kInt32x4ShiftRightByScalar: { |
+ case IrOpcode::kI32x4ShrS: { |
LowerShiftOp(node, machine()->Word32Sar()); |
break; |
} |
- case IrOpcode::kUint32x4ShiftRightByScalar: { |
+ case IrOpcode::kI32x4ShrU: { |
LowerShiftOp(node, machine()->Word32Shr()); |
break; |
} |
#define F32X4_BINOP_CASE(name) \ |
- case IrOpcode::kFloat32x4##name: { \ |
+ case IrOpcode::kF32x4##name: { \ |
LowerBinaryOp(node, rep_type, machine()->Float32##name()); \ |
break; \ |
} |
@@ -651,7 +651,7 @@ void SimdScalarLowering::LowerNode(Node* node) { |
F32X4_BINOP_CASE(Max) |
#undef F32X4_BINOP_CASE |
#define F32X4_UNOP_CASE(name) \ |
- case IrOpcode::kFloat32x4##name: { \ |
+ case IrOpcode::kF32x4##name: { \ |
LowerUnaryOp(node, rep_type, machine()->Float32##name()); \ |
break; \ |
} |
@@ -659,16 +659,16 @@ void SimdScalarLowering::LowerNode(Node* node) { |
F32X4_UNOP_CASE(Neg) |
F32X4_UNOP_CASE(Sqrt) |
#undef F32x4_UNOP_CASE |
- case IrOpcode::kFloat32x4FromInt32x4: { |
+ case IrOpcode::kF32x4SConvertI32x4: { |
LowerUnaryOp(node, SimdType::kInt32, machine()->RoundInt32ToFloat32()); |
break; |
} |
- case IrOpcode::kFloat32x4FromUint32x4: { |
+ case IrOpcode::kF32x4UConvertI32x4: { |
LowerUnaryOp(node, SimdType::kInt32, machine()->RoundUint32ToFloat32()); |
break; |
} |
- case IrOpcode::kInt32x4Splat: |
- case IrOpcode::kFloat32x4Splat: { |
+ case IrOpcode::kI32x4Splat: |
+ case IrOpcode::kF32x4Splat: { |
Node* rep_node[kMaxLanes]; |
for (int i = 0; i < kMaxLanes; ++i) { |
if (HasReplacement(0, node->InputAt(0))) { |
@@ -680,8 +680,8 @@ void SimdScalarLowering::LowerNode(Node* node) { |
ReplaceNode(node, rep_node); |
break; |
} |
- case IrOpcode::kInt32x4ExtractLane: |
- case IrOpcode::kFloat32x4ExtractLane: { |
+ case IrOpcode::kI32x4ExtractLane: |
+ case IrOpcode::kF32x4ExtractLane: { |
int32_t lane = OpParameter<int32_t>(node); |
Node* rep_node[kMaxLanes] = { |
GetReplacementsWithType(node->InputAt(0), rep_type)[lane], nullptr, |
@@ -689,8 +689,8 @@ void SimdScalarLowering::LowerNode(Node* node) { |
ReplaceNode(node, rep_node); |
break; |
} |
- case IrOpcode::kInt32x4ReplaceLane: |
- case IrOpcode::kFloat32x4ReplaceLane: { |
+ case IrOpcode::kI32x4ReplaceLane: |
+ case IrOpcode::kF32x4ReplaceLane: { |
DCHECK_EQ(2, node->InputCount()); |
Node* repNode = node->InputAt(1); |
int32_t lane = OpParameter<int32_t>(node); |
@@ -709,36 +709,30 @@ void SimdScalarLowering::LowerNode(Node* node) { |
LowerBinaryOp(node, SimdType::k##type, machine()->lowering_op(), invert); \ |
break; \ |
} |
- COMPARISON_CASE(Float32, kFloat32x4Equal, Float32Equal, false) |
- COMPARISON_CASE(Float32, kFloat32x4LessThan, Float32LessThan, false) |
- COMPARISON_CASE(Float32, kFloat32x4LessThanOrEqual, |
- Float32LessThanOrEqual, false) |
- COMPARISON_CASE(Float32, kFloat32x4GreaterThan, Float32LessThan, true) |
- COMPARISON_CASE(Float32, kFloat32x4GreaterThanOrEqual, |
- Float32LessThanOrEqual, true) |
- COMPARISON_CASE(Int32, kInt32x4Equal, Word32Equal, false) |
- COMPARISON_CASE(Int32, kInt32x4LessThan, Int32LessThan, false) |
- COMPARISON_CASE(Int32, kInt32x4LessThanOrEqual, Int32LessThanOrEqual, |
- false) |
- COMPARISON_CASE(Int32, kInt32x4GreaterThan, Int32LessThan, true) |
- COMPARISON_CASE(Int32, kInt32x4GreaterThanOrEqual, Int32LessThanOrEqual, |
- true) |
- COMPARISON_CASE(Int32, kUint32x4LessThan, Uint32LessThan, false) |
- COMPARISON_CASE(Int32, kUint32x4LessThanOrEqual, Uint32LessThanOrEqual, |
- false) |
- COMPARISON_CASE(Int32, kUint32x4GreaterThan, Uint32LessThan, true) |
- COMPARISON_CASE(Int32, kUint32x4GreaterThanOrEqual, Uint32LessThanOrEqual, |
- true) |
+ COMPARISON_CASE(Float32, kF32x4Eq, Float32Equal, false) |
+ COMPARISON_CASE(Float32, kF32x4Lt, Float32LessThan, false) |
+ COMPARISON_CASE(Float32, kF32x4Le, Float32LessThanOrEqual, false) |
+ COMPARISON_CASE(Float32, kF32x4Gt, Float32LessThan, true) |
+ COMPARISON_CASE(Float32, kF32x4Ge, Float32LessThanOrEqual, true) |
+ COMPARISON_CASE(Int32, kI32x4Eq, Word32Equal, false) |
+ COMPARISON_CASE(Int32, kI32x4LtS, Int32LessThan, false) |
+ COMPARISON_CASE(Int32, kI32x4LeS, Int32LessThanOrEqual, false) |
+ COMPARISON_CASE(Int32, kI32x4GtS, Int32LessThan, true) |
+ COMPARISON_CASE(Int32, kI32x4GeS, Int32LessThanOrEqual, true) |
+ COMPARISON_CASE(Int32, kI32x4LtU, Uint32LessThan, false) |
+ COMPARISON_CASE(Int32, kI32x4LeU, Uint32LessThanOrEqual, false) |
+ COMPARISON_CASE(Int32, kI32x4GtU, Uint32LessThan, true) |
+ COMPARISON_CASE(Int32, kI32x4GeU, Uint32LessThanOrEqual, true) |
#undef COMPARISON_CASE |
- case IrOpcode::kFloat32x4NotEqual: { |
+ case IrOpcode::kF32x4Ne: { |
LowerNotEqual(node, SimdType::kFloat32, machine()->Float32Equal()); |
break; |
} |
- case IrOpcode::kInt32x4NotEqual: { |
+ case IrOpcode::kI32x4Ne: { |
LowerNotEqual(node, SimdType::kInt32, machine()->Word32Equal()); |
break; |
} |
- case IrOpcode::kSimd32x4Select: { |
+ case IrOpcode::kS32x4Select: { |
DCHECK(node->InputCount() == 3); |
DCHECK(ReplacementType(node->InputAt(0)) == SimdType::kSimd1x4); |
Node** boolean_input = GetReplacements(node->InputAt(0)); |