summaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authorNg Zhi An <ngzhian@gmail.com>2021-03-04 19:47:46 -0800
committerGitHub <noreply@github.com>2021-03-04 19:47:46 -0800
commit055ab5e21b1c642a0242daf76837164ef7b8a4a1 (patch)
treee17cec1d686b3840c8d170416afc63557a0536c2 /src/interp
parent9be10643b12554bc4f9c75017463220d28bca609 (diff)
downloadwabt-055ab5e21b1c642a0242daf76837164ef7b8a4a1.tar.gz
wabt-055ab5e21b1c642a0242daf76837164ef7b8a4a1.tar.bz2
wabt-055ab5e21b1c642a0242daf76837164ef7b8a4a1.zip
[simd] Rename any_true, implement i64x2 bitmask and all_true (#1624)
* Rename all any_true to v128.any_true * Add i64x2.bitmask and i64x2.all_true, rebase simd_boolean * Unskip spec/simd/simd_i16x8_arith2.txt since i64x2.abs is now implemented * Unskip spec/simd/simd_lane.txt * Update dump interp tests, rebase
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/interp.cc6
-rw-r--r--src/interp/istream.cc6
2 files changed, 6 insertions, 6 deletions
diff --git a/src/interp/interp.cc b/src/interp/interp.cc
index 5988be1e..0949c7b2 100644
--- a/src/interp/interp.cc
+++ b/src/interp/interp.cc
@@ -1516,9 +1516,9 @@ RunResult Thread::StepInternal(Trap::Ptr* out_trap) {
case O::V128Or: return DoSimdBinop(IntOr<u64>);
case O::V128Xor: return DoSimdBinop(IntXor<u64>);
case O::V128BitSelect: return DoSimdBitSelect();
+ case O::V128AnyTrue: return DoSimdIsTrue<u8x16, 1>();
case O::I8X16Neg: return DoSimdUnop(IntNeg<u8>);
- case O::I8X16AnyTrue: return DoSimdIsTrue<u8x16, 1>();
case O::I8X16Bitmask: return DoSimdBitmask<s8x16>();
case O::I8X16AllTrue: return DoSimdIsTrue<u8x16, 16>();
case O::I8X16Shl: return DoSimdShift(IntShl<u8>);
@@ -1536,7 +1536,6 @@ RunResult Thread::StepInternal(Trap::Ptr* out_trap) {
case O::I8X16MaxU: return DoSimdBinop(IntMax<u8>);
case O::I16X8Neg: return DoSimdUnop(IntNeg<u16>);
- case O::I16X8AnyTrue: return DoSimdIsTrue<u16x8, 1>();
case O::I16X8Bitmask: return DoSimdBitmask<s16x8>();
case O::I16X8AllTrue: return DoSimdIsTrue<u16x8, 8>();
case O::I16X8Shl: return DoSimdShift(IntShl<u16>);
@@ -1555,7 +1554,6 @@ RunResult Thread::StepInternal(Trap::Ptr* out_trap) {
case O::I16X8MaxU: return DoSimdBinop(IntMax<u16>);
case O::I32X4Neg: return DoSimdUnop(IntNeg<u32>);
- case O::I32X4AnyTrue: return DoSimdIsTrue<u32x4, 1>();
case O::I32X4Bitmask: return DoSimdBitmask<s32x4>();
case O::I32X4AllTrue: return DoSimdIsTrue<u32x4, 4>();
case O::I32X4Shl: return DoSimdShift(IntShl<u32>);
@@ -1570,6 +1568,8 @@ RunResult Thread::StepInternal(Trap::Ptr* out_trap) {
case O::I32X4MaxU: return DoSimdBinop(IntMax<u32>);
case O::I64X2Neg: return DoSimdUnop(IntNeg<u64>);
+ case O::I64X2Bitmask: return DoSimdBitmask<s64x2>();
+ case O::I64X2AllTrue: return DoSimdIsTrue<u64x2, 2>();
case O::I64X2Shl: return DoSimdShift(IntShl<u64>);
case O::I64X2ShrS: return DoSimdShift(IntShr<s64>);
case O::I64X2ShrU: return DoSimdShift(IntShr<u64>);
diff --git a/src/interp/istream.cc b/src/interp/istream.cc
index 6e956675..462eb4a5 100644
--- a/src/interp/istream.cc
+++ b/src/interp/istream.cc
@@ -161,7 +161,6 @@ Instr Istream::Read(Offset* offset) const {
case Opcode::F64X2Sqrt:
case Opcode::F64X2Trunc:
case Opcode::I16X8AllTrue:
- case Opcode::I16X8AnyTrue:
case Opcode::I16X8Bitmask:
case Opcode::I16X8Neg:
case Opcode::I16X8Splat:
@@ -186,7 +185,6 @@ Instr Istream::Read(Offset* offset) const {
case Opcode::I32TruncSatF64U:
case Opcode::I32WrapI64:
case Opcode::I32X4AllTrue:
- case Opcode::I32X4AnyTrue:
case Opcode::I32X4Bitmask:
case Opcode::I32X4Neg:
case Opcode::I32X4Splat:
@@ -215,14 +213,16 @@ Instr Istream::Read(Offset* offset) const {
case Opcode::I64TruncSatF64S:
case Opcode::I64TruncSatF64U:
case Opcode::I64X2Neg:
+ case Opcode::I64X2AllTrue:
+ case Opcode::I64X2Bitmask:
case Opcode::I64X2Splat:
case Opcode::I8X16AllTrue:
- case Opcode::I8X16AnyTrue:
case Opcode::I8X16Bitmask:
case Opcode::I8X16Neg:
case Opcode::I8X16Splat:
case Opcode::RefIsNull:
case Opcode::V128Not:
+ case Opcode::V128AnyTrue:
case Opcode::I8X16Abs:
case Opcode::I16X8Abs:
case Opcode::I32X4Abs: