Index: src/compiler/wasm-compiler.cc |
diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc |
index 7843ba6b63d6003d4915e85889260c93366401d0..f81278509c0cc4167785a6ee97eba437bab0fc89 100644 |
--- a/src/compiler/wasm-compiler.cc |
+++ b/src/compiler/wasm-compiler.cc |
@@ -3235,21 +3235,45 @@ Node* WasmGraphBuilder::SimdOp(wasm::WasmOpcode opcode, |
const NodeVector& inputs) { |
has_simd_ = true; |
switch (opcode) { |
+ case wasm::kExprF32x4Splat: |
+ return graph()->NewNode(jsgraph()->machine()->CreateFloat32x4(), |
+ inputs[0], inputs[0], inputs[0], inputs[0]); |
+ case wasm::kExprF32x4FromInt32x4: |
+ return graph()->NewNode(jsgraph()->machine()->Float32x4FromInt32x4(), |
+ inputs[0]); |
+ case wasm::kExprF32x4FromUint32x4: |
+ return graph()->NewNode(jsgraph()->machine()->Float32x4FromUint32x4(), |
+ inputs[0]); |
+ case wasm::kExprF32x4Add: |
+ return graph()->NewNode(jsgraph()->machine()->Float32x4Add(), inputs[0], |
+ inputs[1]); |
+ case wasm::kExprF32x4Sub: |
+ return graph()->NewNode(jsgraph()->machine()->Float32x4Sub(), inputs[0], |
+ inputs[1]); |
case wasm::kExprI32x4Splat: |
return graph()->NewNode(jsgraph()->machine()->CreateInt32x4(), inputs[0], |
inputs[0], inputs[0], inputs[0]); |
+ case wasm::kExprI32x4FromFloat32x4: |
+ return graph()->NewNode(jsgraph()->machine()->Int32x4FromFloat32x4(), |
+ inputs[0]); |
+ case wasm::kExprUi32x4FromFloat32x4: |
+ return graph()->NewNode(jsgraph()->machine()->Uint32x4FromFloat32x4(), |
+ inputs[0]); |
case wasm::kExprI32x4Add: |
return graph()->NewNode(jsgraph()->machine()->Int32x4Add(), inputs[0], |
inputs[1]); |
case wasm::kExprI32x4Sub: |
return graph()->NewNode(jsgraph()->machine()->Int32x4Sub(), inputs[0], |
inputs[1]); |
- case wasm::kExprF32x4Splat: |
- return graph()->NewNode(jsgraph()->machine()->CreateFloat32x4(), |
- inputs[0], inputs[0], inputs[0], inputs[0]); |
- case wasm::kExprF32x4Add: |
- return graph()->NewNode(jsgraph()->machine()->Float32x4Add(), inputs[0], |
+ case wasm::kExprI32x4Eq: |
+ return graph()->NewNode(jsgraph()->machine()->Int32x4Equal(), inputs[0], |
inputs[1]); |
+ case wasm::kExprI32x4Ne: |
+ return graph()->NewNode(jsgraph()->machine()->Int32x4NotEqual(), |
+ inputs[0], inputs[1]); |
+ case wasm::kExprS32x4Select: |
+ return graph()->NewNode(jsgraph()->machine()->Simd32x4Select(), inputs[0], |
+ inputs[1], inputs[2]); |
default: |
return graph()->NewNode(UnsupportedOpcode(opcode), nullptr); |
} |