Skip to content

Commit b300c7a

Browse files
authored
[spectext] Add i64x2.all_true (WebAssembly#444)
* [spectext] Add i64x2.all_true This instruction was accepted into the proposal in WebAssembly#415. * Simplify syntax/instruction bitmask
1 parent 7c37165 commit b300c7a

File tree

5 files changed

+6
-7
lines changed

5 files changed

+6
-7
lines changed

document/core/appendix/gen-index-instructions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ def Instruction(name, opcode, type=None, validation=None, execution=None, operat
474474
Instruction(r'\I64X2.\VSHR\K{\_s}', r'\hex{FD}~~204', r'[\V128~\I32] \to [\V128]', r'valid-vshiftop', r'exec-vshiftop', r'op-ishr_s'),
475475
Instruction(r'\I64X2.\VSHR\K{\_u}', r'\hex{FD}~~205', r'[\V128~\I32] \to [\V128]', r'valid-vshiftop', r'exec-vshiftop', r'op-ishr_u'),
476476
Instruction(r'\I64X2.\VADD', r'\hex{FD}~~206', r'[\V128~\V128] \to [\V128]', r'valid-vbinop', r'exec-vbinop', r'op-iadd'),
477+
Instruction(r'\I64X2.\ALLTRUE', r'\hex{FD}~~207', r'[\V128] \to [\I32]', r'valid-vitestop', r'exec-vitestop'),
477478
Instruction(r'\I64X2.\VSUB', r'\hex{FD}~~209', r'[\V128~\V128] \to [\V128]', r'valid-vbinop', r'exec-vbinop', r'op-isub'),
478479
Instruction(r'\I64X2.\VMUL', r'\hex{FD}~~213', r'[\V128~\V128] \to [\V128]', r'valid-vbinop', r'exec-vbinop', r'op-imul'),
479480
Instruction(r'\F32X4.\VABS', r'\hex{FD}~~224', r'[\V128] \to [\V128]', r'valid-vunop', r'exec-vunop', r'op-fabs'),

document/core/appendix/index-instructions.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,7 @@ Instruction Binary Opcode Type
422422
:math:`\I64X2.\VSHR\K{\_s}` :math:`\hex{FD}~~204` :math:`[\V128~\I32] \to [\V128]` :ref:`validation <valid-vshiftop>` :ref:`execution <exec-vshiftop>`, :ref:`operator <op-ishr_s>`
423423
:math:`\I64X2.\VSHR\K{\_u}` :math:`\hex{FD}~~205` :math:`[\V128~\I32] \to [\V128]` :ref:`validation <valid-vshiftop>` :ref:`execution <exec-vshiftop>`, :ref:`operator <op-ishr_u>`
424424
:math:`\I64X2.\VADD` :math:`\hex{FD}~~206` :math:`[\V128~\V128] \to [\V128]` :ref:`validation <valid-vbinop>` :ref:`execution <exec-vbinop>`, :ref:`operator <op-iadd>`
425+
:math:`\I64X2.\ALLTRUE` :math:`\hex{FD}~~207` :math:`[\V128] \to [\I32]` :ref:`validation <valid-vitestop>` :ref:`execution <exec-vitestop>`
425426
:math:`\I64X2.\VSUB` :math:`\hex{FD}~~209` :math:`[\V128~\V128] \to [\V128]` :ref:`validation <valid-vbinop>` :ref:`execution <exec-vbinop>`, :ref:`operator <op-isub>`
426427
:math:`\I64X2.\VMUL` :math:`\hex{FD}~~213` :math:`[\V128~\V128] \to [\V128]` :ref:`validation <valid-vbinop>` :ref:`execution <exec-vbinop>`, :ref:`operator <op-imul>`
427428
:math:`\F32X4.\VABS` :math:`\hex{FD}~~224` :math:`[\V128] \to [\V128]` :ref:`validation <valid-vunop>` :ref:`execution <exec-vunop>`, :ref:`operator <op-fabs>`

document/core/binary/instructions.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,7 @@ All other SIMD instructions are plain opcodes without any immediates.
672672
\hex{FD}~~204{:}\Bu32 &\Rightarrow& \I64X2.\VSHR\K{\_s} \\ &&|&
673673
\hex{FD}~~205{:}\Bu32 &\Rightarrow& \I64X2.\VSHR\K{\_u} \\ &&|&
674674
\hex{FD}~~206{:}\Bu32 &\Rightarrow& \I64X2.\VADD \\ &&|&
675+
\hex{FD}~~207{:}\Bu32 &\Rightarrow& \I64X2.\ALLTRUE \\ &&|&
675676
\hex{FD}~~209{:}\Bu32 &\Rightarrow& \I64X2.\VSUB \\ &&|&
676677
\hex{FD}~~213{:}\Bu32 &\Rightarrow& \I64X2.\VMUL \\
677678
\end{array}

document/core/syntax/instructions.rst

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,8 @@ SIMD instructions provide basic operations over :ref:`values <syntax-value>` of
228228
\K{i32x4.}\viunop \\&&|&
229229
\K{i64x2.}\NEG \\&&|&
230230
\fshape\K{.}\vfunop \\&&|&
231-
\K{i8x16.}\vitestop ~|~
232-
\K{i16x8.}\vitestop ~|~
233-
\K{i32x4.}\vitestop \\&&|&
234-
\K{i8x16.}\BITMASK ~|~
235-
\K{i16x8.}\BITMASK ~|~
236-
\K{i32x4.}\BITMASK ~|~
237-
\K{i64x2.}\BITMASK \\&&|&
231+
\ishape\K{.}\vitestop \\ &&|&
232+
\ishape\K{.}\BITMASK \\ &&|&
238233
\K{i8x16.}\NARROW\K{\_i16x8\_}\sx ~|~
239234
\K{i16x8.}\NARROW\K{\_i32x4\_}\sx \\&&|&
240235
\K{i16x8.}\WIDEN\K{\_low}\K{\_i8x16\_}\sx ~|~

document/core/text/instructions.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,7 @@ SIMD const instructions have a mandatory :ref:`shape <syntax-simd-shape>` descri
701701
\begin{array}{llclll}
702702
\phantom{\production{instruction}} & \phantom{\Tplaininstr_I} &\phantom{::=}& \phantom{averylonginstructionnameforsimdtext} && \phantom{simdhasreallylonginstructionnames} \\[-2ex] &&|&
703703
\text{i64x2.neg} &\Rightarrow& \I64X2.\VNEG\\ &&|&
704+
\text{i64x2.all\_true} &\Rightarrow& \I64X2.\ALLTRUE\\ &&|&
704705
\text{i64x2.bitmask} &\Rightarrow& \I64X2.\BITMASK\\ &&|&
705706
\text{i64x2.shl} &\Rightarrow& \I64X2.\VSHL\\ &&|&
706707
\text{i64x2.shr\_s} &\Rightarrow& \I64X2.\VSHR\K{\_s}\\ &&|&

0 commit comments

Comments
 (0)