Index: src/compiler/arm/code-generator-arm.cc |
diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc |
index 4db093af5a115810f1c5e0f750412ce026e7c507..e17ed67dcfcb6552bac98395796d4d0f5ba56e74 100644 |
--- a/src/compiler/arm/code-generator-arm.cc |
+++ b/src/compiler/arm/code-generator-arm.cc |
@@ -1527,6 +1527,14 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
__ vcvt_f32_u32(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
break; |
} |
+ case kArmFloat32x4Abs: { |
+ __ vabs(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
+ break; |
+ } |
+ case kArmFloat32x4Neg: { |
+ __ vneg(i.OutputSimd128Register(), i.InputSimd128Register(0)); |
+ break; |
+ } |
case kArmFloat32x4Add: { |
__ vadd(i.OutputSimd128Register(), i.InputSimd128Register(0), |
i.InputSimd128Register(1)); |
@@ -1537,6 +1545,17 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
i.InputSimd128Register(1)); |
break; |
} |
+ case kArmFloat32x4Eq: { |
+ __ vceq(i.OutputSimd128Register(), i.InputSimd128Register(0), |
+ i.InputSimd128Register(1)); |
+ break; |
+ } |
+ case kArmFloat32x4Ne: { |
+ Simd128Register dst = i.OutputSimd128Register(); |
+ __ vceq(dst, i.InputSimd128Register(0), i.InputSimd128Register(1)); |
+ __ vmvn(dst, dst); |
+ break; |
+ } |
case kArmInt32x4Splat: { |
__ vdup(Neon32, i.OutputSimd128Register(), i.InputRegister(0)); |
break; |