Instructions

Instructions are encoded by opcodes. Each opcode is represented by a single byte, and is followed by the instruction’s immediate arguments, where present. The only exception are structured control instructions, which consist of several opcodes bracketing their nested instruction sequences.

Note

Gaps in the byte code ranges for encoding instructions are reserved for future extensions.

Control Instructions

Control instructions have varying encodings. For structured instructions, the instruction sequences forming nested blocks are delimited with explicit opcodes for \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}}\) and \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}\).

Block types are encoded in special compressed form, by either the byte \(\def\mathdef1714#1{\mathtt{0x#1}}\mathdef1714{40}\) indicating the empty type, as a single value type, or as a type index encoded as a positive signed integer.

\[\begin{split}\begin{array}{@{}llcllll} \def\mathdef1674#1{{}}\mathdef1674{block type} & \href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}} &::=& \def\mathdef1715#1{\mathtt{0x#1}}\mathdef1715{40} &\Rightarrow& \epsilon \\ &&|& t{:}\href{../binary/types.html#binary-valtype}{\mathtt{valtype}} &\Rightarrow& t \\ &&|& x{:}\href{../binary/values.html#binary-int}{\def\mathdef1685#1{{\mathtt{s}#1}}\mathdef1685{\mathtt{33}}} &\Rightarrow& x \qquad (\mathrel{\mbox{if}} x \geq 0) \\ \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \def\mathdef1716#1{\mathtt{0x#1}}\mathdef1716{00} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{unreachable}} \\ &&|& \def\mathdef1717#1{\mathtt{0x#1}}\mathdef1717{01} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{nop}} \\ &&|& \def\mathdef1718#1{\mathtt{0x#1}}\mathdef1718{02}~~\mathit{bt}{:}\href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1719#1{\mathtt{0x#1}}\mathdef1719{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{block}}~\mathit{bt}~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1720#1{\mathtt{0x#1}}\mathdef1720{03}~~\mathit{bt}{:}\href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1721#1{\mathtt{0x#1}}\mathdef1721{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{loop}}~\mathit{bt}~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1722#1{\mathtt{0x#1}}\mathdef1722{04}~~\mathit{bt}{:}\href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1723#1{\mathtt{0x#1}}\mathdef1723{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{if}}~\mathit{bt}~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}~\epsilon~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1724#1{\mathtt{0x#1}}\mathdef1724{04}~~\mathit{bt}{:}\href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}_1{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast\\&&&~~ \def\mathdef1725#1{\mathtt{0x#1}}\mathdef1725{05}~~(\mathit{in}_2{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1726#1{\mathtt{0x#1}}\mathdef1726{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{if}}~\mathit{bt}~\mathit{in}_1^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}~\mathit{in}_2^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1727#1{\mathtt{0x#1}}\mathdef1727{08}~~x{:}\href{../binary/modules.html#binary-tagidx}{\mathtt{tagidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{throw}}~x \\ &&|& \def\mathdef1728#1{\mathtt{0x#1}}\mathdef1728{0A} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{throw\_ref}} \\ &&|& \def\mathdef1729#1{\mathtt{0x#1}}\mathdef1729{0C}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br}}~l \\ &&|& \def\mathdef1730#1{\mathtt{0x#1}}\mathdef1730{0D}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_if}}~l \\ &&|& \def\mathdef1731#1{\mathtt{0x#1}}\mathdef1731{0E}~~l^\ast{:}\href{../binary/conventions.html#binary-vec}{\mathtt{vec}}(\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}})~~l_N{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_table}}~l^\ast~l_N \\ &&|& \def\mathdef1732#1{\mathtt{0x#1}}\mathdef1732{0F} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{return}} \\ &&|& \def\mathdef1733#1{\mathtt{0x#1}}\mathdef1733{10}~~x{:}\href{../binary/modules.html#binary-funcidx}{\mathtt{funcidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{call}}~x \\ &&|& \def\mathdef1734#1{\mathtt{0x#1}}\mathdef1734{11}~~y{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{call\_indirect}}~x~y \\ &&|& \def\mathdef1735#1{\mathtt{0x#1}}\mathdef1735{12}~~x{:}\href{../binary/modules.html#binary-funcidx}{\mathtt{funcidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{return\_call}}~x \\ &&|& \def\mathdef1736#1{\mathtt{0x#1}}\mathdef1736{13}~~y{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{return\_call\_indirect}}~x~y \\ &&|& \def\mathdef1737#1{\mathtt{0x#1}}\mathdef1737{14}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{call\_ref}}~x \\ &&|& \def\mathdef1738#1{\mathtt{0x#1}}\mathdef1738{15}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{return\_call\_ref}}~x \\ &&|& \def\mathdef1739#1{\mathtt{0x#1}}\mathdef1739{1F}~~\mathit{bt}{:}\href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}}~~c^\ast{:}\href{../binary/conventions.html#binary-vec}{\mathtt{vec}}(\href{../binary/instructions.html#binary-catch}{\mathtt{catch}})~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1740#1{\mathtt{0x#1}}\mathdef1740{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{try\_table}}~\mathit{bt}~c^\ast~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ \def\mathdef1741#1{\mathtt{0x#1}}\mathdef1741{D5}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_on\_null}}~l \\ &&|& \def\mathdef1742#1{\mathtt{0x#1}}\mathdef1742{D6}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_on\_non\_null}}~l \\ &&|& \def\mathdef1743#1{\mathtt{0x#1}}\mathdef1743{FB}~~24{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~(\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_1^?,\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_2^?){:}\href{../binary/instructions.html#binary-castflags}{\mathtt{castflags}}\\&&&~~~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}}~~\mathit{ht}_1{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}}~~\mathit{ht}_2{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_on\_cast}}~l~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_1^?~\mathit{ht}_1)~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_2^?~\mathit{ht}_2) \\ &&|& \def\mathdef1744#1{\mathtt{0x#1}}\mathdef1744{FB}~~25{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~(\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_1^?,\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_2^?){:}\href{../binary/instructions.html#binary-castflags}{\mathtt{castflags}}\\&&&~~~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}}~~\mathit{ht}_1{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}}~~\mathit{ht}_2{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_on\_cast\_fail}}~l~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_1^?~\mathit{ht}_1)~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}_2^?~\mathit{ht}_2) \\ \def\mathdef1674#1{{}}\mathdef1674{catch clause} & \href{../binary/instructions.html#binary-catch}{\mathtt{catch}} &::=& \def\mathdef1745#1{\mathtt{0x#1}}\mathdef1745{00}~~x{:}\href{../binary/modules.html#binary-tagidx}{\mathtt{tagidx}}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{catch}}~x~l \\ &&|& \def\mathdef1746#1{\mathtt{0x#1}}\mathdef1746{01}~~x{:}\href{../binary/modules.html#binary-tagidx}{\mathtt{tagidx}}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{catch\_ref}}~x~l \\ &&|& \def\mathdef1747#1{\mathtt{0x#1}}\mathdef1747{02}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{catch\_all}}~l \\ &&|& \def\mathdef1748#1{\mathtt{0x#1}}\mathdef1748{03}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{catch\_all\_ref}}~l \\ \def\mathdef1674#1{{}}\mathdef1674{cast flags} & \href{../binary/instructions.html#binary-castflags}{\mathtt{castflags}} &::=& 0{:}\href{../binary/values.html#binary-int}{\def\mathdef1678#1{{\mathtt{u}#1}}\mathdef1678{\mathtt{8}}} &\Rightarrow& (\epsilon, \epsilon) \\ &&|& 1{:}\href{../binary/values.html#binary-int}{\def\mathdef1678#1{{\mathtt{u}#1}}\mathdef1678{\mathtt{8}}} &\Rightarrow& (\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}, \epsilon) \\ &&|& 2{:}\href{../binary/values.html#binary-int}{\def\mathdef1678#1{{\mathtt{u}#1}}\mathdef1678{\mathtt{8}}} &\Rightarrow& (\epsilon, \href{../syntax/types.html#syntax-reftype}{\mathsf{null}}) \\ &&|& 3{:}\href{../binary/values.html#binary-int}{\def\mathdef1678#1{{\mathtt{u}#1}}\mathdef1678{\mathtt{8}}} &\Rightarrow& (\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}, \href{../syntax/types.html#syntax-reftype}{\mathsf{null}}) \\ \end{array}\end{split}\]

Note

The \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}\) opcode \(\def\mathdef1749#1{\mathtt{0x#1}}\mathdef1749{05}\) in the encoding of an \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{if}}\) instruction can be omitted if the following instruction sequence is empty.

Unlike any other occurrence, the type index in a block type is encoded as a positive signed integer, so that its signed LEB128 bit pattern cannot collide with the encoding of value types or the special code \(\def\mathdef1750#1{\mathtt{0x#1}}\mathdef1750{40}\), which correspond to the LEB128 encoding of negative integers. To avoid any loss in the range of allowed indices, it is treated as a 33 bit signed integer.

Reference Instructions

Generic reference instructions are represented by single byte codes, others use prefixes and type operands.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1751#1{\mathtt{0x#1}}\mathdef1751{D0}~~t{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.null}}~t \\ &&|& \def\mathdef1752#1{\mathtt{0x#1}}\mathdef1752{D1} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.is\_null}} \\ &&|& \def\mathdef1753#1{\mathtt{0x#1}}\mathdef1753{D2}~~x{:}\href{../binary/modules.html#binary-funcidx}{\mathtt{funcidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.func}}~x \\ &&|& \def\mathdef1754#1{\mathtt{0x#1}}\mathdef1754{D3} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.eq}} \\ &&|& \def\mathdef1755#1{\mathtt{0x#1}}\mathdef1755{D4} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.as\_non\_null}} \\ &&|& \def\mathdef1756#1{\mathtt{0x#1}}\mathdef1756{FB}~~0{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-struct}{\mathsf{struct.new}}~x \\ &&|& \def\mathdef1757#1{\mathtt{0x#1}}\mathdef1757{FB}~~1{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-struct}{\mathsf{struct.new\_default}}~x \\ &&|& \def\mathdef1758#1{\mathtt{0x#1}}\mathdef1758{FB}~~2{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-fieldidx}{\mathtt{fieldidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-struct}{\mathsf{struct.get}}~x~y \\ &&|& \def\mathdef1759#1{\mathtt{0x#1}}\mathdef1759{FB}~~3{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-fieldidx}{\mathtt{fieldidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-struct}{\mathsf{struct.get\_s}}~x~y \\ &&|& \def\mathdef1760#1{\mathtt{0x#1}}\mathdef1760{FB}~~4{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-fieldidx}{\mathtt{fieldidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-struct}{\mathsf{struct.get\_u}}~x~y \\ &&|& \def\mathdef1761#1{\mathtt{0x#1}}\mathdef1761{FB}~~5{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-fieldidx}{\mathtt{fieldidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-struct}{\mathsf{struct.set}}~x~y \\ &&|& \def\mathdef1762#1{\mathtt{0x#1}}\mathdef1762{FB}~~6{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.new}}~x \\ &&|& \def\mathdef1763#1{\mathtt{0x#1}}\mathdef1763{FB}~~7{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.new\_default}}~x \\ &&|& \def\mathdef1764#1{\mathtt{0x#1}}\mathdef1764{FB}~~8{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~n{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.new\_fixed}}~x~n \\ &&|& \def\mathdef1765#1{\mathtt{0x#1}}\mathdef1765{FB}~~9{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-dataidx}{\mathtt{dataidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.new\_data}}~x~y \\ &&|& \def\mathdef1766#1{\mathtt{0x#1}}\mathdef1766{FB}~~10{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-elemidx}{\mathtt{elemidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.new\_elem}}~x~y \\ &&|& \def\mathdef1767#1{\mathtt{0x#1}}\mathdef1767{FB}~~11{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.get}}~x \\ &&|& \def\mathdef1768#1{\mathtt{0x#1}}\mathdef1768{FB}~~12{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.get\_s}}~x \\ &&|& \def\mathdef1769#1{\mathtt{0x#1}}\mathdef1769{FB}~~13{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.get\_u}}~x \\ &&|& \def\mathdef1770#1{\mathtt{0x#1}}\mathdef1770{FB}~~14{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.set}}~x \\ &&|& \def\mathdef1771#1{\mathtt{0x#1}}\mathdef1771{FB}~~15{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.len}} \\ &&|& \def\mathdef1772#1{\mathtt{0x#1}}\mathdef1772{FB}~~16{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.fill}}~x \\ &&|& \def\mathdef1773#1{\mathtt{0x#1}}\mathdef1773{FB}~~17{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.copy}}~x~y \\ &&|& \def\mathdef1774#1{\mathtt{0x#1}}\mathdef1774{FB}~~18{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-dataidx}{\mathtt{dataidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.init\_data}}~x~y \\ &&|& \def\mathdef1775#1{\mathtt{0x#1}}\mathdef1775{FB}~~19{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~y{:}\href{../binary/modules.html#binary-elemidx}{\mathtt{elemidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-array}{\mathsf{array.init\_elem}}~x~y \\ &&|& \def\mathdef1776#1{\mathtt{0x#1}}\mathdef1776{FB}~~20{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~\mathit{ht}{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.test}}~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\mathit{ht}) \\ &&|& \def\mathdef1777#1{\mathtt{0x#1}}\mathdef1777{FB}~~21{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~\mathit{ht}{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.test}}~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}~\mathit{ht}) \\ &&|& \def\mathdef1778#1{\mathtt{0x#1}}\mathdef1778{FB}~~22{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~\mathit{ht}{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.cast}}~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\mathit{ht}) \\ &&|& \def\mathdef1779#1{\mathtt{0x#1}}\mathdef1779{FB}~~23{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~\mathit{ht}{:}\href{../binary/types.html#binary-heaptype}{\mathtt{heaptype}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-ref}{\mathsf{ref.cast}}~(\href{../syntax/types.html#syntax-reftype}{\mathsf{ref}}~\href{../syntax/types.html#syntax-reftype}{\mathsf{null}}~\mathit{ht}) \\ &&|& \def\mathdef1780#1{\mathtt{0x#1}}\mathdef1780{FB}~~26{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-extern}{\mathsf{any.convert\_extern}} \\ &&|& \def\mathdef1781#1{\mathtt{0x#1}}\mathdef1781{FB}~~27{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-extern}{\mathsf{extern.convert\_any}} \\ &&|& \def\mathdef1782#1{\mathtt{0x#1}}\mathdef1782{FB}~~28{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-i31}{\mathsf{ref.i31}} \\ &&|& \def\mathdef1783#1{\mathtt{0x#1}}\mathdef1783{FB}~~29{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-i31}{\mathsf{i31.get\_s}} \\ &&|& \def\mathdef1784#1{\mathtt{0x#1}}\mathdef1784{FB}~~30{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-i31}{\mathsf{i31.get\_u}} \\ \end{array}\end{split}\]

Parametric Instructions

Parametric instructions are represented by single byte codes, possibly followed by a type annotation.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1785#1{\mathtt{0x#1}}\mathdef1785{1A} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-parametric}{\mathsf{drop}} \\ &&|& \def\mathdef1786#1{\mathtt{0x#1}}\mathdef1786{1B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-parametric}{\mathsf{select}} \\ &&|& \def\mathdef1787#1{\mathtt{0x#1}}\mathdef1787{1C}~~t^\ast{:}\href{../binary/conventions.html#binary-vec}{\mathtt{vec}}(\href{../binary/types.html#binary-valtype}{\mathtt{valtype}}) &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-parametric}{\mathsf{select}}~t^\ast \\ \end{array}\end{split}\]

Variable Instructions

Variable instructions are represented by byte codes followed by the encoding of the respective index.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1788#1{\mathtt{0x#1}}\mathdef1788{20}~~x{:}\href{../binary/modules.html#binary-localidx}{\mathtt{localidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{local.get}}~x \\ &&|& \def\mathdef1789#1{\mathtt{0x#1}}\mathdef1789{21}~~x{:}\href{../binary/modules.html#binary-localidx}{\mathtt{localidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{local.set}}~x \\ &&|& \def\mathdef1790#1{\mathtt{0x#1}}\mathdef1790{22}~~x{:}\href{../binary/modules.html#binary-localidx}{\mathtt{localidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{local.tee}}~x \\ &&|& \def\mathdef1791#1{\mathtt{0x#1}}\mathdef1791{23}~~x{:}\href{../binary/modules.html#binary-globalidx}{\mathtt{globalidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{global.get}}~x \\ &&|& \def\mathdef1792#1{\mathtt{0x#1}}\mathdef1792{24}~~x{:}\href{../binary/modules.html#binary-globalidx}{\mathtt{globalidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{global.set}}~x \\ \end{array}\end{split}\]

Table Instructions

Table instructions are represented either by a single byte or a one byte prefix followed by a variable-length unsigned integer.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1793#1{\mathtt{0x#1}}\mathdef1793{25}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.get}}~x \\ &&|& \def\mathdef1794#1{\mathtt{0x#1}}\mathdef1794{26}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.set}}~x \\ &&|& \def\mathdef1795#1{\mathtt{0x#1}}\mathdef1795{FC}~~12{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~y{:}\href{../binary/modules.html#binary-elemidx}{\mathtt{elemidx}}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.init}}~x~y \\ &&|& \def\mathdef1796#1{\mathtt{0x#1}}\mathdef1796{FC}~~13{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-elemidx}{\mathtt{elemidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{elem.drop}}~x \\ &&|& \def\mathdef1797#1{\mathtt{0x#1}}\mathdef1797{FC}~~14{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}}~~y{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.copy}}~x~y \\ &&|& \def\mathdef1798#1{\mathtt{0x#1}}\mathdef1798{FC}~~15{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.grow}}~x \\ &&|& \def\mathdef1799#1{\mathtt{0x#1}}\mathdef1799{FC}~~16{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.size}}~x \\ &&|& \def\mathdef1800#1{\mathtt{0x#1}}\mathdef1800{FC}~~17{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-tableidx}{\mathtt{tableidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-table}{\mathsf{table.fill}}~x \\ \end{array}\end{split}\]

Memory Instructions

Each variant of memory instruction is encoded with a different byte code. Loads and stores are followed by the encoding of their \(\href{../syntax/instructions.html#syntax-memarg}{\mathit{memarg}}\) immediate, which includes the memory index if bit 6 of the flags field containing alignment is set; the memory index defaults to 0 otherwise.

\[\begin{split}\begin{array}{llcllll} \def\mathdef1674#1{{}}\mathdef1674{memory argument} & \href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &::=& a{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~o{:}\href{../binary/values.html#binary-int}{\def\mathdef1681#1{{\mathtt{u}#1}}\mathdef1681{\mathtt{64}}} &\Rightarrow& 0~\{ \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{align}}~a,~\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{offset}}~o \} & (\mathrel{\mbox{if}} a < 2^6) \\ &&|& a{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../syntax/modules.html#syntax-memidx}{\mathit{memidx}}~~o{:}\href{../binary/values.html#binary-int}{\def\mathdef1681#1{{\mathtt{u}#1}}\mathdef1681{\mathtt{64}}} &\Rightarrow& x~\{ \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{align}}~(a - 2^6),~\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{offset}}~o \} & (\mathrel{\mbox{if}} 2^6 \leq a < 2^7) \\ \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1801#1{\mathtt{0x#1}}\mathdef1801{28}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1802#1{\mathtt{0x#1}}\mathdef1802{29}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1803#1{\mathtt{0x#1}}\mathdef1803{2A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1804#1{\mathtt{0x#1}}\mathdef1804{2B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1805#1{\mathtt{0x#1}}\mathdef1805{2C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_s}~m \\ &&|& \def\mathdef1806#1{\mathtt{0x#1}}\mathdef1806{2D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_u}~m \\ &&|& \def\mathdef1807#1{\mathtt{0x#1}}\mathdef1807{2E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_s}~m \\ &&|& \def\mathdef1808#1{\mathtt{0x#1}}\mathdef1808{2F}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_u}~m \\ &&|& \def\mathdef1809#1{\mathtt{0x#1}}\mathdef1809{30}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_s}~m \\ &&|& \def\mathdef1810#1{\mathtt{0x#1}}\mathdef1810{31}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_u}~m \\ &&|& \def\mathdef1811#1{\mathtt{0x#1}}\mathdef1811{32}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_s}~m \\ &&|& \def\mathdef1812#1{\mathtt{0x#1}}\mathdef1812{33}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_u}~m \\ &&|& \def\mathdef1813#1{\mathtt{0x#1}}\mathdef1813{34}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32\_s}~m \\ &&|& \def\mathdef1814#1{\mathtt{0x#1}}\mathdef1814{35}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32\_u}~m \\ &&|& \def\mathdef1815#1{\mathtt{0x#1}}\mathdef1815{36}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1816#1{\mathtt{0x#1}}\mathdef1816{37}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1817#1{\mathtt{0x#1}}\mathdef1817{38}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1818#1{\mathtt{0x#1}}\mathdef1818{39}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1819#1{\mathtt{0x#1}}\mathdef1819{3A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{8}~m \\ &&|& \def\mathdef1820#1{\mathtt{0x#1}}\mathdef1820{3B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{16}~m \\ &&|& \def\mathdef1821#1{\mathtt{0x#1}}\mathdef1821{3C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{8}~m \\ &&|& \def\mathdef1822#1{\mathtt{0x#1}}\mathdef1822{3D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{16}~m \\ &&|& \def\mathdef1823#1{\mathtt{0x#1}}\mathdef1823{3E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{32}~m \\ &&|& \def\mathdef1824#1{\mathtt{0x#1}}\mathdef1824{3F}~~x{:}\href{../binary/modules.html#binary-memidx}{\mathtt{memidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.size}}~x \\ &&|& \def\mathdef1825#1{\mathtt{0x#1}}\mathdef1825{40}~~x{:}\href{../binary/modules.html#binary-memidx}{\mathtt{memidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.grow}}~x \\ &&|& \def\mathdef1826#1{\mathtt{0x#1}}\mathdef1826{FC}~~8{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~y{:}\href{../binary/modules.html#binary-dataidx}{\mathtt{dataidx}}~x{:}\href{../binary/modules.html#binary-memidx}{\mathtt{memidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.init}}~x~y \\ &&|& \def\mathdef1827#1{\mathtt{0x#1}}\mathdef1827{FC}~~9{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-dataidx}{\mathtt{dataidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{data.drop}}~x \\ &&|& \def\mathdef1828#1{\mathtt{0x#1}}\mathdef1828{FC}~~10{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-memidx}{\mathtt{memidx}}~~y{:}\href{../binary/modules.html#binary-memidx}{\mathtt{memidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.copy}}~x~y \\ &&|& \def\mathdef1829#1{\mathtt{0x#1}}\mathdef1829{FC}~~11{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~x{:}\href{../binary/modules.html#binary-memidx}{\mathtt{memidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{memory.fill}}~x \\ \end{array}\end{split}\]

Numeric Instructions

All variants of numeric instructions are represented by separate byte codes.

The \(\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}\) instructions are followed by the respective literal.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\&&|& \def\mathdef1830#1{\mathtt{0x#1}}\mathdef1830{41}~~n{:}\href{../binary/values.html#binary-int}{\def\mathdef1688#1{{\mathtt{i}#1}}\mathdef1688{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~n \\ &&|& \def\mathdef1831#1{\mathtt{0x#1}}\mathdef1831{42}~~n{:}\href{../binary/values.html#binary-int}{\def\mathdef1689#1{{\mathtt{i}#1}}\mathdef1689{\mathtt{64}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~n \\ &&|& \def\mathdef1832#1{\mathtt{0x#1}}\mathdef1832{43}~~z{:}\href{../binary/values.html#binary-float}{\def\mathdef1691#1{{\mathtt{f}#1}}\mathdef1691{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~z \\ &&|& \def\mathdef1833#1{\mathtt{0x#1}}\mathdef1833{44}~~z{:}\href{../binary/values.html#binary-float}{\def\mathdef1692#1{{\mathtt{f}#1}}\mathdef1692{\mathtt{64}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~z \\ \end{array}\end{split}\]

All other numeric instructions are plain opcodes without any immediates.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots && \phantom{thisshouldbeenough} \\&&|& \def\mathdef1834#1{\mathtt{0x#1}}\mathdef1834{45} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eqz}} \\ &&|& \def\mathdef1835#1{\mathtt{0x#1}}\mathdef1835{46} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1836#1{\mathtt{0x#1}}\mathdef1836{47} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1837#1{\mathtt{0x#1}}\mathdef1837{48} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef1838#1{\mathtt{0x#1}}\mathdef1838{49} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_u} \\ &&|& \def\mathdef1839#1{\mathtt{0x#1}}\mathdef1839{4A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef1840#1{\mathtt{0x#1}}\mathdef1840{4B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_u} \\ &&|& \def\mathdef1841#1{\mathtt{0x#1}}\mathdef1841{4C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef1842#1{\mathtt{0x#1}}\mathdef1842{4D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_u} \\ &&|& \def\mathdef1843#1{\mathtt{0x#1}}\mathdef1843{4E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_s} \\ &&|& \def\mathdef1844#1{\mathtt{0x#1}}\mathdef1844{4F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1845#1{\mathtt{0x#1}}\mathdef1845{50} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eqz}} \\ &&|& \def\mathdef1846#1{\mathtt{0x#1}}\mathdef1846{51} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1847#1{\mathtt{0x#1}}\mathdef1847{52} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1848#1{\mathtt{0x#1}}\mathdef1848{53} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef1849#1{\mathtt{0x#1}}\mathdef1849{54} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_u} \\ &&|& \def\mathdef1850#1{\mathtt{0x#1}}\mathdef1850{55} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef1851#1{\mathtt{0x#1}}\mathdef1851{56} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_u} \\ &&|& \def\mathdef1852#1{\mathtt{0x#1}}\mathdef1852{57} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef1853#1{\mathtt{0x#1}}\mathdef1853{58} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_u} \\ &&|& \def\mathdef1854#1{\mathtt{0x#1}}\mathdef1854{59} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_s} \\ &&|& \def\mathdef1855#1{\mathtt{0x#1}}\mathdef1855{5A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1856#1{\mathtt{0x#1}}\mathdef1856{5B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1857#1{\mathtt{0x#1}}\mathdef1857{5C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1858#1{\mathtt{0x#1}}\mathdef1858{5D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}} \\ &&|& \def\mathdef1859#1{\mathtt{0x#1}}\mathdef1859{5E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}} \\ &&|& \def\mathdef1860#1{\mathtt{0x#1}}\mathdef1860{5F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}} \\ &&|& \def\mathdef1861#1{\mathtt{0x#1}}\mathdef1861{60} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1862#1{\mathtt{0x#1}}\mathdef1862{61} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1863#1{\mathtt{0x#1}}\mathdef1863{62} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1864#1{\mathtt{0x#1}}\mathdef1864{63} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}} \\ &&|& \def\mathdef1865#1{\mathtt{0x#1}}\mathdef1865{64} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}} \\ &&|& \def\mathdef1866#1{\mathtt{0x#1}}\mathdef1866{65} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}} \\ &&|& \def\mathdef1867#1{\mathtt{0x#1}}\mathdef1867{66} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1868#1{\mathtt{0x#1}}\mathdef1868{67} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{clz}} \\ &&|& \def\mathdef1869#1{\mathtt{0x#1}}\mathdef1869{68} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ctz}} \\ &&|& \def\mathdef1870#1{\mathtt{0x#1}}\mathdef1870{69} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{popcnt}} \\ &&|& \def\mathdef1871#1{\mathtt{0x#1}}\mathdef1871{6A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1872#1{\mathtt{0x#1}}\mathdef1872{6B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1873#1{\mathtt{0x#1}}\mathdef1873{6C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1874#1{\mathtt{0x#1}}\mathdef1874{6D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_s} \\ &&|& \def\mathdef1875#1{\mathtt{0x#1}}\mathdef1875{6E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_u} \\ &&|& \def\mathdef1876#1{\mathtt{0x#1}}\mathdef1876{6F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_s} \\ &&|& \def\mathdef1877#1{\mathtt{0x#1}}\mathdef1877{70} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_u} \\ &&|& \def\mathdef1878#1{\mathtt{0x#1}}\mathdef1878{71} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{and}} \\ &&|& \def\mathdef1879#1{\mathtt{0x#1}}\mathdef1879{72} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{or}} \\ &&|& \def\mathdef1880#1{\mathtt{0x#1}}\mathdef1880{73} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{xor}} \\ &&|& \def\mathdef1881#1{\mathtt{0x#1}}\mathdef1881{74} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shl}} \\ &&|& \def\mathdef1882#1{\mathtt{0x#1}}\mathdef1882{75} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef1883#1{\mathtt{0x#1}}\mathdef1883{76} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef1884#1{\mathtt{0x#1}}\mathdef1884{77} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotl}} \\ &&|& \def\mathdef1885#1{\mathtt{0x#1}}\mathdef1885{78} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotr}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1886#1{\mathtt{0x#1}}\mathdef1886{79} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{clz}} \\ &&|& \def\mathdef1887#1{\mathtt{0x#1}}\mathdef1887{7A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ctz}} \\ &&|& \def\mathdef1888#1{\mathtt{0x#1}}\mathdef1888{7B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{popcnt}} \\ &&|& \def\mathdef1889#1{\mathtt{0x#1}}\mathdef1889{7C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1890#1{\mathtt{0x#1}}\mathdef1890{7D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1891#1{\mathtt{0x#1}}\mathdef1891{7E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1892#1{\mathtt{0x#1}}\mathdef1892{7F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_s} \\ &&|& \def\mathdef1893#1{\mathtt{0x#1}}\mathdef1893{80} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_u} \\ &&|& \def\mathdef1894#1{\mathtt{0x#1}}\mathdef1894{81} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_s} \\ &&|& \def\mathdef1895#1{\mathtt{0x#1}}\mathdef1895{82} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_u} \\ &&|& \def\mathdef1896#1{\mathtt{0x#1}}\mathdef1896{83} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{and}} \\ &&|& \def\mathdef1897#1{\mathtt{0x#1}}\mathdef1897{84} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{or}} \\ &&|& \def\mathdef1898#1{\mathtt{0x#1}}\mathdef1898{85} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{xor}} \\ &&|& \def\mathdef1899#1{\mathtt{0x#1}}\mathdef1899{86} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shl}} \\ &&|& \def\mathdef1900#1{\mathtt{0x#1}}\mathdef1900{87} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef1901#1{\mathtt{0x#1}}\mathdef1901{88} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef1902#1{\mathtt{0x#1}}\mathdef1902{89} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotl}} \\ &&|& \def\mathdef1903#1{\mathtt{0x#1}}\mathdef1903{8A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotr}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1904#1{\mathtt{0x#1}}\mathdef1904{8B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{abs}} \\ &&|& \def\mathdef1905#1{\mathtt{0x#1}}\mathdef1905{8C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{neg}} \\ &&|& \def\mathdef1906#1{\mathtt{0x#1}}\mathdef1906{8D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ceil}} \\ &&|& \def\mathdef1907#1{\mathtt{0x#1}}\mathdef1907{8E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{floor}} \\ &&|& \def\mathdef1908#1{\mathtt{0x#1}}\mathdef1908{8F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}} \\ &&|& \def\mathdef1909#1{\mathtt{0x#1}}\mathdef1909{90} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{nearest}} \\ &&|& \def\mathdef1910#1{\mathtt{0x#1}}\mathdef1910{91} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sqrt}} \\ &&|& \def\mathdef1911#1{\mathtt{0x#1}}\mathdef1911{92} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1912#1{\mathtt{0x#1}}\mathdef1912{93} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1913#1{\mathtt{0x#1}}\mathdef1913{94} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1914#1{\mathtt{0x#1}}\mathdef1914{95} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}} \\ &&|& \def\mathdef1915#1{\mathtt{0x#1}}\mathdef1915{96} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{min}} \\ &&|& \def\mathdef1916#1{\mathtt{0x#1}}\mathdef1916{97} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{max}} \\ &&|& \def\mathdef1917#1{\mathtt{0x#1}}\mathdef1917{98} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{copysign}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1918#1{\mathtt{0x#1}}\mathdef1918{99} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{abs}} \\ &&|& \def\mathdef1919#1{\mathtt{0x#1}}\mathdef1919{9A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{neg}} \\ &&|& \def\mathdef1920#1{\mathtt{0x#1}}\mathdef1920{9B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ceil}} \\ &&|& \def\mathdef1921#1{\mathtt{0x#1}}\mathdef1921{9C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{floor}} \\ &&|& \def\mathdef1922#1{\mathtt{0x#1}}\mathdef1922{9D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}} \\ &&|& \def\mathdef1923#1{\mathtt{0x#1}}\mathdef1923{9E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{nearest}} \\ &&|& \def\mathdef1924#1{\mathtt{0x#1}}\mathdef1924{9F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sqrt}} \\ &&|& \def\mathdef1925#1{\mathtt{0x#1}}\mathdef1925{A0} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1926#1{\mathtt{0x#1}}\mathdef1926{A1} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1927#1{\mathtt{0x#1}}\mathdef1927{A2} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1928#1{\mathtt{0x#1}}\mathdef1928{A3} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}} \\ &&|& \def\mathdef1929#1{\mathtt{0x#1}}\mathdef1929{A4} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{min}} \\ &&|& \def\mathdef1930#1{\mathtt{0x#1}}\mathdef1930{A5} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{max}} \\ &&|& \def\mathdef1931#1{\mathtt{0x#1}}\mathdef1931{A6} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{copysign}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1932#1{\mathtt{0x#1}}\mathdef1932{A7} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{wrap}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ &&|& \def\mathdef1933#1{\mathtt{0x#1}}\mathdef1933{A8} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_s} \\ &&|& \def\mathdef1934#1{\mathtt{0x#1}}\mathdef1934{A9} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_u} \\ &&|& \def\mathdef1935#1{\mathtt{0x#1}}\mathdef1935{AA} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_s} \\ &&|& \def\mathdef1936#1{\mathtt{0x#1}}\mathdef1936{AB} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_u} \\ &&|& \def\mathdef1937#1{\mathtt{0x#1}}\mathdef1937{AC} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}\mathsf{\_s} \\ &&|& \def\mathdef1938#1{\mathtt{0x#1}}\mathdef1938{AD} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}\mathsf{\_u} \\ &&|& \def\mathdef1939#1{\mathtt{0x#1}}\mathdef1939{AE} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_s} \\ &&|& \def\mathdef1940#1{\mathtt{0x#1}}\mathdef1940{AF} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_u} \\ &&|& \def\mathdef1941#1{\mathtt{0x#1}}\mathdef1941{B0} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_s} \\ &&|& \def\mathdef1942#1{\mathtt{0x#1}}\mathdef1942{B1} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_u} \\ &&|& \def\mathdef1943#1{\mathtt{0x#1}}\mathdef1943{B2} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}\mathsf{\_s} \\ &&|& \def\mathdef1944#1{\mathtt{0x#1}}\mathdef1944{B3} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}\mathsf{\_u} \\ &&|& \def\mathdef1945#1{\mathtt{0x#1}}\mathdef1945{B4} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}\mathsf{\_s} \\ &&|& \def\mathdef1946#1{\mathtt{0x#1}}\mathdef1946{B5} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}\mathsf{\_u} \\ &&|& \def\mathdef1947#1{\mathtt{0x#1}}\mathdef1947{B6} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{demote}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1948#1{\mathtt{0x#1}}\mathdef1948{B7} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}\mathsf{\_s} \\ &&|& \def\mathdef1949#1{\mathtt{0x#1}}\mathdef1949{B8} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}\mathsf{\_u} \\ &&|& \def\mathdef1950#1{\mathtt{0x#1}}\mathdef1950{B9} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}\mathsf{\_s} \\ &&|& \def\mathdef1951#1{\mathtt{0x#1}}\mathdef1951{BA} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}\mathsf{\_u} \\ &&|& \def\mathdef1952#1{\mathtt{0x#1}}\mathdef1952{BB} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{promote}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1953#1{\mathtt{0x#1}}\mathdef1953{BC} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1954#1{\mathtt{0x#1}}\mathdef1954{BD} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1955#1{\mathtt{0x#1}}\mathdef1955{BE} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1956#1{\mathtt{0x#1}}\mathdef1956{BF} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1957#1{\mathtt{0x#1}}\mathdef1957{C0} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{8\_s} \\ &&|& \def\mathdef1958#1{\mathtt{0x#1}}\mathdef1958{C1} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{16\_s} \\ &&|& \def\mathdef1959#1{\mathtt{0x#1}}\mathdef1959{C2} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{8\_s} \\ &&|& \def\mathdef1960#1{\mathtt{0x#1}}\mathdef1960{C3} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{16\_s} \\ &&|& \def\mathdef1961#1{\mathtt{0x#1}}\mathdef1961{C4} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{32\_s} \\ \end{array}\end{split}\]

The saturating truncation instructions all have a one byte prefix, whereas the actual opcode is encoded by a variable-length unsigned integer.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots && \phantom{thisshouldbeenough} \\&&|& \def\mathdef1962#1{\mathtt{0x#1}}\mathdef1962{FC}~~0{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_s} \\ &&|& \def\mathdef1963#1{\mathtt{0x#1}}\mathdef1963{FC}~~1{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_u} \\ &&|& \def\mathdef1964#1{\mathtt{0x#1}}\mathdef1964{FC}~~2{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_s} \\ &&|& \def\mathdef1965#1{\mathtt{0x#1}}\mathdef1965{FC}~~3{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_u} \\ &&|& \def\mathdef1966#1{\mathtt{0x#1}}\mathdef1966{FC}~~4{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_s} \\ &&|& \def\mathdef1967#1{\mathtt{0x#1}}\mathdef1967{FC}~~5{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}\mathsf{\_u} \\ &&|& \def\mathdef1968#1{\mathtt{0x#1}}\mathdef1968{FC}~~6{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_s} \\ &&|& \def\mathdef1969#1{\mathtt{0x#1}}\mathdef1969{FC}~~7{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}\mathsf{\_u} \\ \end{array}\end{split}\]

Vector Instructions

All variants of vector instructions are represented by separate byte codes. They all have a one byte prefix, whereas the actual opcode is encoded by a variable-length unsigned integer.

Vector loads and stores are followed by the encoding of their \(\href{../syntax/instructions.html#syntax-memarg}{\mathit{memarg}}\) immediate.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{lane index} & \href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &::=& l{:}\href{../binary/values.html#binary-byte}{\mathtt{byte}} &\Rightarrow& l \\ \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\&&|& \def\mathdef1970#1{\mathtt{0x#1}}\mathdef1970{FD}~~0{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1971#1{\mathtt{0x#1}}\mathdef1971{FD}~~1{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8x8\_s}~m \\ &&|& \def\mathdef1972#1{\mathtt{0x#1}}\mathdef1972{FD}~~2{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8x8\_u}~m \\ &&|& \def\mathdef1973#1{\mathtt{0x#1}}\mathdef1973{FD}~~3{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16x4\_s}~m \\ &&|& \def\mathdef1974#1{\mathtt{0x#1}}\mathdef1974{FD}~~4{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16x4\_u}~m \\ &&|& \def\mathdef1975#1{\mathtt{0x#1}}\mathdef1975{FD}~~5{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32x2\_s}~m \\ &&|& \def\mathdef1976#1{\mathtt{0x#1}}\mathdef1976{FD}~~6{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32x2\_u}~m \\ &&|& \def\mathdef1977#1{\mathtt{0x#1}}\mathdef1977{FD}~~7{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_splat}~m \\ &&|& \def\mathdef1978#1{\mathtt{0x#1}}\mathdef1978{FD}~~8{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_splat}~m \\ &&|& \def\mathdef1979#1{\mathtt{0x#1}}\mathdef1979{FD}~~9{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32\_splat}~m \\ &&|& \def\mathdef1980#1{\mathtt{0x#1}}\mathdef1980{FD}~~10{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{64\_splat}~m \\ &&|& \def\mathdef1981#1{\mathtt{0x#1}}\mathdef1981{FD}~~92{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32\_zero}~m \\ &&|& \def\mathdef1982#1{\mathtt{0x#1}}\mathdef1982{FD}~~93{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{64\_zero}~m \\ &&|& \def\mathdef1983#1{\mathtt{0x#1}}\mathdef1983{FD}~~11{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1984#1{\mathtt{0x#1}}\mathdef1984{FD}~~84{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_lane}~m~l \\ &&|& \def\mathdef1985#1{\mathtt{0x#1}}\mathdef1985{FD}~~85{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_lane}~m~l \\ &&|& \def\mathdef1986#1{\mathtt{0x#1}}\mathdef1986{FD}~~86{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32\_lane}~m~l \\ &&|& \def\mathdef1987#1{\mathtt{0x#1}}\mathdef1987{FD}~~87{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{64\_lane}~m~l \\ &&|& \def\mathdef1988#1{\mathtt{0x#1}}\mathdef1988{FD}~~88{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{8\_lane}~m~l \\ &&|& \def\mathdef1989#1{\mathtt{0x#1}}\mathdef1989{FD}~~89{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{16\_lane}~m~l \\ &&|& \def\mathdef1990#1{\mathtt{0x#1}}\mathdef1990{FD}~~90{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{32\_lane}~m~l \\ &&|& \def\mathdef1991#1{\mathtt{0x#1}}\mathdef1991{FD}~~91{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}}~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{64\_lane}~m~l \\ \end{array}\end{split}\]

The \(\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{const}}\) instruction is followed by 16 immediate bytes, which are converted into a \(\href{../syntax/values.html#syntax-int}{\mathit{i128}}\) in \(\href{../exec/numerics.html#aux-littleendian}{\mathrm{littleendian}}\) byte order:

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\&&|& \def\mathdef1992#1{\mathtt{0x#1}}\mathdef1992{FD}~~12{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~(b{:}\href{../binary/values.html#binary-byte}{\mathtt{byte}})^{16} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{const}}~ \href{../exec/numerics.html#aux-bytes}{\mathrm{bytes}}_{\mathsf{i128}}^{-1}(b_{0}~\dots~b_{15}) \\ \end{array}\end{split}\]

The \(\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shuffle}}\) instruction is also followed by the encoding of 16 \(\href{../syntax/instructions.html#syntax-laneidx}{\mathit{laneidx}}\) immediates.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\&&|& \def\mathdef1993#1{\mathtt{0x#1}}\mathdef1993{FD}~~13{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~(l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}})^{16} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shuffle}}~l^{16} \\ \end{array}\end{split}\]

\(\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}\) and \(\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{replace\_lane}}\) instructions are followed by the encoding of a \(\href{../syntax/instructions.html#syntax-laneidx}{\mathit{laneidx}}\) immediate.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\&&|& \def\mathdef1994#1{\mathtt{0x#1}}\mathdef1994{FD}~~21{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}\mathsf{\_s}~l \\ &&|& \def\mathdef1995#1{\mathtt{0x#1}}\mathdef1995{FD}~~22{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}\mathsf{\_u}~l \\ &&|& \def\mathdef1996#1{\mathtt{0x#1}}\mathdef1996{FD}~~23{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{replace\_lane}}~l \\ &&|& \def\mathdef1997#1{\mathtt{0x#1}}\mathdef1997{FD}~~24{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}\mathsf{\_s}~l \\ &&|& \def\mathdef1998#1{\mathtt{0x#1}}\mathdef1998{FD}~~25{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}\mathsf{\_u}~l \\ &&|& \def\mathdef1999#1{\mathtt{0x#1}}\mathdef1999{FD}~~26{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{replace\_lane}}~l \\ &&|& \def\mathdef2000#1{\mathtt{0x#1}}\mathdef2000{FD}~~27{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}~l \\ &&|& \def\mathdef2001#1{\mathtt{0x#1}}\mathdef2001{FD}~~28{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{replace\_lane}}~l \\ &&|& \def\mathdef2002#1{\mathtt{0x#1}}\mathdef2002{FD}~~29{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}~l \\ &&|& \def\mathdef2003#1{\mathtt{0x#1}}\mathdef2003{FD}~~30{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{replace\_lane}}~l \\ &&|& \def\mathdef2004#1{\mathtt{0x#1}}\mathdef2004{FD}~~31{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}~l \\ &&|& \def\mathdef2005#1{\mathtt{0x#1}}\mathdef2005{FD}~~32{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{replace\_lane}}~l \\ &&|& \def\mathdef2006#1{\mathtt{0x#1}}\mathdef2006{FD}~~33{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extract\_lane}}~l \\ &&|& \def\mathdef2007#1{\mathtt{0x#1}}\mathdef2007{FD}~~34{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}}~~l{:}\href{../binary/instructions.html#binary-laneidx}{\mathtt{laneidx}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{replace\_lane}}~l \\ \end{array}\end{split}\]

All other vector instructions are plain opcodes without any immediates.

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots && \phantom{vechaslongerinstructionnames} \\&&|& \def\mathdef2008#1{\mathtt{0x#1}}\mathdef2008{FD}~~14{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{swizzle}} \\ &&|& \def\mathdef2009#1{\mathtt{0x#1}}\mathdef2009{FD}~~15{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{splat}} \\ &&|& \def\mathdef2010#1{\mathtt{0x#1}}\mathdef2010{FD}~~16{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{splat}} \\ &&|& \def\mathdef2011#1{\mathtt{0x#1}}\mathdef2011{FD}~~17{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{splat}} \\ &&|& \def\mathdef2012#1{\mathtt{0x#1}}\mathdef2012{FD}~~18{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{splat}} \\ &&|& \def\mathdef2013#1{\mathtt{0x#1}}\mathdef2013{FD}~~19{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{splat}} \\ &&|& \def\mathdef2014#1{\mathtt{0x#1}}\mathdef2014{FD}~~20{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{splat}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2015#1{\mathtt{0x#1}}\mathdef2015{FD}~~35{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{eq}} \\ &&|& \def\mathdef2016#1{\mathtt{0x#1}}\mathdef2016{FD}~~36{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ne}} \\ &&|& \def\mathdef2017#1{\mathtt{0x#1}}\mathdef2017{FD}~~37{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef2018#1{\mathtt{0x#1}}\mathdef2018{FD}~~38{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}}\mathsf{\_u} \\ &&|& \def\mathdef2019#1{\mathtt{0x#1}}\mathdef2019{FD}~~39{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef2020#1{\mathtt{0x#1}}\mathdef2020{FD}~~40{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}}\mathsf{\_u} \\ &&|& \def\mathdef2021#1{\mathtt{0x#1}}\mathdef2021{FD}~~41{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef2022#1{\mathtt{0x#1}}\mathdef2022{FD}~~42{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}}\mathsf{\_u} \\ &&|& \def\mathdef2023#1{\mathtt{0x#1}}\mathdef2023{FD}~~43{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}}\mathsf{\_s} \\ &&|& \def\mathdef2024#1{\mathtt{0x#1}}\mathdef2024{FD}~~44{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2025#1{\mathtt{0x#1}}\mathdef2025{FD}~~45{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{eq}} \\ &&|& \def\mathdef2026#1{\mathtt{0x#1}}\mathdef2026{FD}~~46{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ne}} \\ &&|& \def\mathdef2027#1{\mathtt{0x#1}}\mathdef2027{FD}~~47{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef2028#1{\mathtt{0x#1}}\mathdef2028{FD}~~48{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}}\mathsf{\_u} \\ &&|& \def\mathdef2029#1{\mathtt{0x#1}}\mathdef2029{FD}~~49{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef2030#1{\mathtt{0x#1}}\mathdef2030{FD}~~50{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}}\mathsf{\_u} \\ &&|& \def\mathdef2031#1{\mathtt{0x#1}}\mathdef2031{FD}~~51{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef2032#1{\mathtt{0x#1}}\mathdef2032{FD}~~52{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}}\mathsf{\_u} \\ &&|& \def\mathdef2033#1{\mathtt{0x#1}}\mathdef2033{FD}~~53{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}}\mathsf{\_s} \\ &&|& \def\mathdef2034#1{\mathtt{0x#1}}\mathdef2034{FD}~~54{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2035#1{\mathtt{0x#1}}\mathdef2035{FD}~~55{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{eq}} \\ &&|& \def\mathdef2036#1{\mathtt{0x#1}}\mathdef2036{FD}~~56{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ne}} \\ &&|& \def\mathdef2037#1{\mathtt{0x#1}}\mathdef2037{FD}~~57{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef2038#1{\mathtt{0x#1}}\mathdef2038{FD}~~58{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}}\mathsf{\_u} \\ &&|& \def\mathdef2039#1{\mathtt{0x#1}}\mathdef2039{FD}~~59{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef2040#1{\mathtt{0x#1}}\mathdef2040{FD}~~60{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}}\mathsf{\_u} \\ &&|& \def\mathdef2041#1{\mathtt{0x#1}}\mathdef2041{FD}~~61{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef2042#1{\mathtt{0x#1}}\mathdef2042{FD}~~62{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}}\mathsf{\_u} \\ &&|& \def\mathdef2043#1{\mathtt{0x#1}}\mathdef2043{FD}~~63{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}}\mathsf{\_s} \\ &&|& \def\mathdef2044#1{\mathtt{0x#1}}\mathdef2044{FD}~~64{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2045#1{\mathtt{0x#1}}\mathdef2045{FD}~~214{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{eq}} \\ &&|& \def\mathdef2046#1{\mathtt{0x#1}}\mathdef2046{FD}~~215{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ne}} \\ &&|& \def\mathdef2047#1{\mathtt{0x#1}}\mathdef2047{FD}~~216{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef2048#1{\mathtt{0x#1}}\mathdef2048{FD}~~217{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef2049#1{\mathtt{0x#1}}\mathdef2049{FD}~~218{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef2050#1{\mathtt{0x#1}}\mathdef2050{FD}~~219{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}}\mathsf{\_s} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2051#1{\mathtt{0x#1}}\mathdef2051{FD}~~65{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{eq}} \\ &&|& \def\mathdef2052#1{\mathtt{0x#1}}\mathdef2052{FD}~~66{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ne}} \\ &&|& \def\mathdef2053#1{\mathtt{0x#1}}\mathdef2053{FD}~~67{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}} \\ &&|& \def\mathdef2054#1{\mathtt{0x#1}}\mathdef2054{FD}~~68{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}} \\ &&|& \def\mathdef2055#1{\mathtt{0x#1}}\mathdef2055{FD}~~69{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}} \\ &&|& \def\mathdef2056#1{\mathtt{0x#1}}\mathdef2056{FD}~~70{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2057#1{\mathtt{0x#1}}\mathdef2057{FD}~~71{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{eq}} \\ &&|& \def\mathdef2058#1{\mathtt{0x#1}}\mathdef2058{FD}~~72{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ne}} \\ &&|& \def\mathdef2059#1{\mathtt{0x#1}}\mathdef2059{FD}~~73{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{lt}} \\ &&|& \def\mathdef2060#1{\mathtt{0x#1}}\mathdef2060{FD}~~74{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{gt}} \\ &&|& \def\mathdef2061#1{\mathtt{0x#1}}\mathdef2061{FD}~~75{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{le}} \\ &&|& \def\mathdef2062#1{\mathtt{0x#1}}\mathdef2062{FD}~~76{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ge}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2063#1{\mathtt{0x#1}}\mathdef2063{FD}~~77{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{not}} \\ &&|& \def\mathdef2064#1{\mathtt{0x#1}}\mathdef2064{FD}~~78{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{and}} \\ &&|& \def\mathdef2065#1{\mathtt{0x#1}}\mathdef2065{FD}~~79{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{andnot}} \\ &&|& \def\mathdef2066#1{\mathtt{0x#1}}\mathdef2066{FD}~~80{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{or}} \\ &&|& \def\mathdef2067#1{\mathtt{0x#1}}\mathdef2067{FD}~~81{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{xor}} \\ &&|& \def\mathdef2068#1{\mathtt{0x#1}}\mathdef2068{FD}~~82{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{bitselect}} \\ &&|& \def\mathdef2069#1{\mathtt{0x#1}}\mathdef2069{FD}~~83{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{v128}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{any\_true}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2070#1{\mathtt{0x#1}}\mathdef2070{FD}~~96{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{abs}} \\ &&|& \def\mathdef2071#1{\mathtt{0x#1}}\mathdef2071{FD}~~97{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{neg}} \\ &&|& \def\mathdef2072#1{\mathtt{0x#1}}\mathdef2072{FD}~~98{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{popcnt}} \\ &&|& \def\mathdef2073#1{\mathtt{0x#1}}\mathdef2073{FD}~~99{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{all\_true}} \\ &&|& \def\mathdef2074#1{\mathtt{0x#1}}\mathdef2074{FD}~~100{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{bitmask}} \\ &&|& \def\mathdef2075#1{\mathtt{0x#1}}\mathdef2075{FD}~~101{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{narrow}}\mathsf{\_i16x8\_s} \\ &&|& \def\mathdef2076#1{\mathtt{0x#1}}\mathdef2076{FD}~~102{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{narrow}}\mathsf{\_i16x8\_u} \\ &&|& \def\mathdef2077#1{\mathtt{0x#1}}\mathdef2077{FD}~~107{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shl}} \\ &&|& \def\mathdef2078#1{\mathtt{0x#1}}\mathdef2078{FD}~~108{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef2079#1{\mathtt{0x#1}}\mathdef2079{FD}~~109{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef2080#1{\mathtt{0x#1}}\mathdef2080{FD}~~110{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}} \\ &&|& \def\mathdef2081#1{\mathtt{0x#1}}\mathdef2081{FD}~~111{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}}\mathsf{\_sat\_s} \\ &&|& \def\mathdef2082#1{\mathtt{0x#1}}\mathdef2082{FD}~~112{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}}\mathsf{\_sat\_u} \\ &&|& \def\mathdef2083#1{\mathtt{0x#1}}\mathdef2083{FD}~~113{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}} \\ &&|& \def\mathdef2084#1{\mathtt{0x#1}}\mathdef2084{FD}~~114{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}}\mathsf{\_sat\_s} \\ &&|& \def\mathdef2085#1{\mathtt{0x#1}}\mathdef2085{FD}~~115{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}}\mathsf{\_sat\_u} \\ &&|& \def\mathdef2086#1{\mathtt{0x#1}}\mathdef2086{FD}~~118{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}}\mathsf{\_s} \\ &&|& \def\mathdef2087#1{\mathtt{0x#1}}\mathdef2087{FD}~~119{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}}\mathsf{\_u} \\ &&|& \def\mathdef2088#1{\mathtt{0x#1}}\mathdef2088{FD}~~120{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}}\mathsf{\_s} \\ &&|& \def\mathdef2089#1{\mathtt{0x#1}}\mathdef2089{FD}~~121{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}}\mathsf{\_u} \\ &&|& \def\mathdef2090#1{\mathtt{0x#1}}\mathdef2090{FD}~~123{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{avgr}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2091#1{\mathtt{0x#1}}\mathdef2091{FD}~~124{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extadd\_pairwise}}\mathsf{\_i8x16\_s}\\ &&|& \def\mathdef2092#1{\mathtt{0x#1}}\mathdef2092{FD}~~125{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extadd\_pairwise}}\mathsf{\_i8x16\_u}\\ &&|& \def\mathdef2093#1{\mathtt{0x#1}}\mathdef2093{FD}~~128{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{abs}} \\ &&|& \def\mathdef2094#1{\mathtt{0x#1}}\mathdef2094{FD}~~129{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{neg}} \\ &&|& \def\mathdef2095#1{\mathtt{0x#1}}\mathdef2095{FD}~~130{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{q15mulr\_sat}}\mathsf{\_s} \\ &&|& \def\mathdef2096#1{\mathtt{0x#1}}\mathdef2096{FD}~~131{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{all\_true}} \\ &&|& \def\mathdef2097#1{\mathtt{0x#1}}\mathdef2097{FD}~~132{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{bitmask}} \\ &&|& \def\mathdef2098#1{\mathtt{0x#1}}\mathdef2098{FD}~~133{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{narrow}}\mathsf{\_i32x4\_s} \\ &&|& \def\mathdef2099#1{\mathtt{0x#1}}\mathdef2099{FD}~~134{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{narrow}}\mathsf{\_i32x4\_u} \\ &&|& \def\mathdef2100#1{\mathtt{0x#1}}\mathdef2100{FD}~~135{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_low\_i8x16\_s} \\ &&|& \def\mathdef2101#1{\mathtt{0x#1}}\mathdef2101{FD}~~136{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_high\_i8x16\_s} \\ &&|& \def\mathdef2102#1{\mathtt{0x#1}}\mathdef2102{FD}~~137{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_low\_i8x16\_u} \\ &&|& \def\mathdef2103#1{\mathtt{0x#1}}\mathdef2103{FD}~~138{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_high\_i8x16\_u} \\ &&|& \def\mathdef2104#1{\mathtt{0x#1}}\mathdef2104{FD}~~139{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shl}} \\ &&|& \def\mathdef2105#1{\mathtt{0x#1}}\mathdef2105{FD}~~140{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef2106#1{\mathtt{0x#1}}\mathdef2106{FD}~~141{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef2107#1{\mathtt{0x#1}}\mathdef2107{FD}~~142{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}} \\ &&|& \def\mathdef2108#1{\mathtt{0x#1}}\mathdef2108{FD}~~143{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}}\mathsf{\_sat\_s} \\ &&|& \def\mathdef2109#1{\mathtt{0x#1}}\mathdef2109{FD}~~144{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}}\mathsf{\_sat\_u} \\ &&|& \def\mathdef2110#1{\mathtt{0x#1}}\mathdef2110{FD}~~145{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}} \\ &&|& \def\mathdef2111#1{\mathtt{0x#1}}\mathdef2111{FD}~~146{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}}\mathsf{\_sat\_s} \\ &&|& \def\mathdef2112#1{\mathtt{0x#1}}\mathdef2112{FD}~~147{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}}\mathsf{\_sat\_u} \\ &&|& \def\mathdef2113#1{\mathtt{0x#1}}\mathdef2113{FD}~~149{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{mul}} \\ &&|& \def\mathdef2114#1{\mathtt{0x#1}}\mathdef2114{FD}~~150{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}}\mathsf{\_s} \\ &&|& \def\mathdef2115#1{\mathtt{0x#1}}\mathdef2115{FD}~~151{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}}\mathsf{\_u} \\ &&|& \def\mathdef2116#1{\mathtt{0x#1}}\mathdef2116{FD}~~152{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}}\mathsf{\_s} \\ &&|& \def\mathdef2117#1{\mathtt{0x#1}}\mathdef2117{FD}~~153{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}}\mathsf{\_u} \\ &&|& \def\mathdef2118#1{\mathtt{0x#1}}\mathdef2118{FD}~~155{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{avgr}}\mathsf{\_u} \\ &&|& \def\mathdef2119#1{\mathtt{0x#1}}\mathdef2119{FD}~~156{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_low\_i8x16\_s}\\ &&|& \def\mathdef2120#1{\mathtt{0x#1}}\mathdef2120{FD}~~157{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_high\_i8x16\_s}\\ &&|& \def\mathdef2121#1{\mathtt{0x#1}}\mathdef2121{FD}~~158{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_low\_i8x16\_u}\\ &&|& \def\mathdef2122#1{\mathtt{0x#1}}\mathdef2122{FD}~~159{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_high\_i8x16\_u}\\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2123#1{\mathtt{0x#1}}\mathdef2123{FD}~~126{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extadd\_pairwise}}\mathsf{\_i16x8\_s}\\ &&|& \def\mathdef2124#1{\mathtt{0x#1}}\mathdef2124{FD}~~127{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extadd\_pairwise}}\mathsf{\_i16x8\_u}\\ &&|& \def\mathdef2125#1{\mathtt{0x#1}}\mathdef2125{FD}~~160{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{abs}} \\ &&|& \def\mathdef2126#1{\mathtt{0x#1}}\mathdef2126{FD}~~161{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{neg}} \\ &&|& \def\mathdef2127#1{\mathtt{0x#1}}\mathdef2127{FD}~~163{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{all\_true}} \\ &&|& \def\mathdef2128#1{\mathtt{0x#1}}\mathdef2128{FD}~~164{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{bitmask}} \\ &&|& \def\mathdef2129#1{\mathtt{0x#1}}\mathdef2129{FD}~~167{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_low\_i16x8\_s} \\ &&|& \def\mathdef2130#1{\mathtt{0x#1}}\mathdef2130{FD}~~168{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_high\_i16x8\_s} \\ &&|& \def\mathdef2131#1{\mathtt{0x#1}}\mathdef2131{FD}~~169{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_low\_i16x8\_u} \\ &&|& \def\mathdef2132#1{\mathtt{0x#1}}\mathdef2132{FD}~~170{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_high\_i16x8\_u} \\ &&|& \def\mathdef2133#1{\mathtt{0x#1}}\mathdef2133{FD}~~171{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shl}} \\ &&|& \def\mathdef2134#1{\mathtt{0x#1}}\mathdef2134{FD}~~172{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef2135#1{\mathtt{0x#1}}\mathdef2135{FD}~~173{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef2136#1{\mathtt{0x#1}}\mathdef2136{FD}~~174{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}} \\ &&|& \def\mathdef2137#1{\mathtt{0x#1}}\mathdef2137{FD}~~177{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}} \\ &&|& \def\mathdef2138#1{\mathtt{0x#1}}\mathdef2138{FD}~~181{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{mul}} \\ &&|& \def\mathdef2139#1{\mathtt{0x#1}}\mathdef2139{FD}~~182{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}}\mathsf{\_s} \\ &&|& \def\mathdef2140#1{\mathtt{0x#1}}\mathdef2140{FD}~~183{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}}\mathsf{\_u} \\ &&|& \def\mathdef2141#1{\mathtt{0x#1}}\mathdef2141{FD}~~184{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}}\mathsf{\_s} \\ &&|& \def\mathdef2142#1{\mathtt{0x#1}}\mathdef2142{FD}~~185{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}}\mathsf{\_u} \\ &&|& \def\mathdef2143#1{\mathtt{0x#1}}\mathdef2143{FD}~~186{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{dot}}\mathsf{\_i16x8\_s}\\ &&|& \def\mathdef2144#1{\mathtt{0x#1}}\mathdef2144{FD}~~188{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_low\_i16x8\_s}\\ &&|& \def\mathdef2145#1{\mathtt{0x#1}}\mathdef2145{FD}~~189{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_high\_i16x8\_s}\\ &&|& \def\mathdef2146#1{\mathtt{0x#1}}\mathdef2146{FD}~~190{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_low\_i16x8\_u}\\ &&|& \def\mathdef2147#1{\mathtt{0x#1}}\mathdef2147{FD}~~191{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_high\_i16x8\_u}\\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2148#1{\mathtt{0x#1}}\mathdef2148{FD}~~192{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{abs}} \\ &&|& \def\mathdef2149#1{\mathtt{0x#1}}\mathdef2149{FD}~~193{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{neg}} \\ &&|& \def\mathdef2150#1{\mathtt{0x#1}}\mathdef2150{FD}~~195{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{all\_true}} \\ &&|& \def\mathdef2151#1{\mathtt{0x#1}}\mathdef2151{FD}~~196{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{bitmask}} \\ &&|& \def\mathdef2152#1{\mathtt{0x#1}}\mathdef2152{FD}~~199{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_low\_i32x4\_s} \\ &&|& \def\mathdef2153#1{\mathtt{0x#1}}\mathdef2153{FD}~~200{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_high\_i32x4\_s} \\ &&|& \def\mathdef2154#1{\mathtt{0x#1}}\mathdef2154{FD}~~201{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_low\_i32x4\_u} \\ &&|& \def\mathdef2155#1{\mathtt{0x#1}}\mathdef2155{FD}~~202{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extend}}\mathsf{\_high\_i32x4\_u} \\ &&|& \def\mathdef2156#1{\mathtt{0x#1}}\mathdef2156{FD}~~203{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shl}} \\ &&|& \def\mathdef2157#1{\mathtt{0x#1}}\mathdef2157{FD}~~204{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef2158#1{\mathtt{0x#1}}\mathdef2158{FD}~~205{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef2159#1{\mathtt{0x#1}}\mathdef2159{FD}~~206{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}} \\ &&|& \def\mathdef2160#1{\mathtt{0x#1}}\mathdef2160{FD}~~209{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}} \\ &&|& \def\mathdef2161#1{\mathtt{0x#1}}\mathdef2161{FD}~~213{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{mul}} \\ &&|& \def\mathdef2162#1{\mathtt{0x#1}}\mathdef2162{FD}~~220{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_low\_i32x4\_s}\\ &&|& \def\mathdef2163#1{\mathtt{0x#1}}\mathdef2163{FD}~~221{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_high\_i32x4\_s}\\ &&|& \def\mathdef2164#1{\mathtt{0x#1}}\mathdef2164{FD}~~222{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_low\_i32x4\_u}\\ &&|& \def\mathdef2165#1{\mathtt{0x#1}}\mathdef2165{FD}~~223{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{extmul}}\mathsf{\_high\_i32x4\_u}\\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2166#1{\mathtt{0x#1}}\mathdef2166{FD}~~103{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ceil}} \\ &&|& \def\mathdef2167#1{\mathtt{0x#1}}\mathdef2167{FD}~~104{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{floor}} \\ &&|& \def\mathdef2168#1{\mathtt{0x#1}}\mathdef2168{FD}~~105{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{trunc}} \\ &&|& \def\mathdef2169#1{\mathtt{0x#1}}\mathdef2169{FD}~~106{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{nearest}} \\ &&|& \def\mathdef2170#1{\mathtt{0x#1}}\mathdef2170{FD}~~224{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{abs}} \\ &&|& \def\mathdef2171#1{\mathtt{0x#1}}\mathdef2171{FD}~~225{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{neg}} \\ &&|& \def\mathdef2172#1{\mathtt{0x#1}}\mathdef2172{FD}~~227{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sqrt}} \\ &&|& \def\mathdef2173#1{\mathtt{0x#1}}\mathdef2173{FD}~~228{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}} \\ &&|& \def\mathdef2174#1{\mathtt{0x#1}}\mathdef2174{FD}~~229{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}} \\ &&|& \def\mathdef2175#1{\mathtt{0x#1}}\mathdef2175{FD}~~230{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{mul}} \\ &&|& \def\mathdef2176#1{\mathtt{0x#1}}\mathdef2176{FD}~~231{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{div}} \\ &&|& \def\mathdef2177#1{\mathtt{0x#1}}\mathdef2177{FD}~~232{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}} \\ &&|& \def\mathdef2178#1{\mathtt{0x#1}}\mathdef2178{FD}~~233{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}} \\ &&|& \def\mathdef2179#1{\mathtt{0x#1}}\mathdef2179{FD}~~234{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{pmin}} \\ &&|& \def\mathdef2180#1{\mathtt{0x#1}}\mathdef2180{FD}~~235{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{pmax}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2181#1{\mathtt{0x#1}}\mathdef2181{FD}~~116{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{ceil}} \\ &&|& \def\mathdef2182#1{\mathtt{0x#1}}\mathdef2182{FD}~~117{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{floor}} \\ &&|& \def\mathdef2183#1{\mathtt{0x#1}}\mathdef2183{FD}~~122{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{trunc}} \\ &&|& \def\mathdef2184#1{\mathtt{0x#1}}\mathdef2184{FD}~~148{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{nearest}} \\ &&|& \def\mathdef2185#1{\mathtt{0x#1}}\mathdef2185{FD}~~236{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{abs}} \\ &&|& \def\mathdef2186#1{\mathtt{0x#1}}\mathdef2186{FD}~~237{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{neg}} \\ &&|& \def\mathdef2187#1{\mathtt{0x#1}}\mathdef2187{FD}~~239{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sqrt}} \\ &&|& \def\mathdef2188#1{\mathtt{0x#1}}\mathdef2188{FD}~~240{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{add}} \\ &&|& \def\mathdef2189#1{\mathtt{0x#1}}\mathdef2189{FD}~~241{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{sub}} \\ &&|& \def\mathdef2190#1{\mathtt{0x#1}}\mathdef2190{FD}~~242{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{mul}} \\ &&|& \def\mathdef2191#1{\mathtt{0x#1}}\mathdef2191{FD}~~243{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{div}} \\ &&|& \def\mathdef2192#1{\mathtt{0x#1}}\mathdef2192{FD}~~244{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{min}} \\ &&|& \def\mathdef2193#1{\mathtt{0x#1}}\mathdef2193{FD}~~245{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{max}} \\ &&|& \def\mathdef2194#1{\mathtt{0x#1}}\mathdef2194{FD}~~246{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{pmin}} \\ &&|& \def\mathdef2195#1{\mathtt{0x#1}}\mathdef2195{FD}~~247{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{pmax}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2196#1{\mathtt{0x#1}}\mathdef2196{FD}~~248{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_f32x4\_s} \\ &&|& \def\mathdef2197#1{\mathtt{0x#1}}\mathdef2197{FD}~~249{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_sat\_f32x4\_u} \\ &&|& \def\mathdef2198#1{\mathtt{0x#1}}\mathdef2198{FD}~~250{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_i32x4\_s} \\ &&|& \def\mathdef2199#1{\mathtt{0x#1}}\mathdef2199{FD}~~251{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_i32x4\_u} \\ &&|& \def\mathdef2200#1{\mathtt{0x#1}}\mathdef2200{FD}~~252{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{trunc}}\mathsf{\_sat\_f64x2\_s\_zero}\\ &&|& \def\mathdef2201#1{\mathtt{0x#1}}\mathdef2201{FD}~~253{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{trunc}}\mathsf{\_sat\_f64x2\_u\_zero}\\ &&|& \def\mathdef2202#1{\mathtt{0x#1}}\mathdef2202{FD}~~254{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{convert}}\mathsf{\_low\_i32x4\_s}\\ &&|& \def\mathdef2203#1{\mathtt{0x#1}}\mathdef2203{FD}~~255{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{convert}}\mathsf{\_low\_i32x4\_u}\\ &&|& \def\mathdef2204#1{\mathtt{0x#1}}\mathdef2204{FD}~~94{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{demote}}\mathsf{\_f64x2\_zero}\\ &&|& \def\mathdef2205#1{\mathtt{0x#1}}\mathdef2205{FD}~~95{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{promote}}\mathsf{\_low\_f32x4}\\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef1674#1{{}}\mathdef1674{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{vechaslongerinstructionnames} \\[-2ex] &&|& \def\mathdef2206#1{\mathtt{0x#1}}\mathdef2206{FD}~~256{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_swizzle}} \\ &&|& \def\mathdef2207#1{\mathtt{0x#1}}\mathdef2207{FD}~~257{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_trunc}}\mathsf{\_f32x4\_s} \\ &&|& \def\mathdef2208#1{\mathtt{0x#1}}\mathdef2208{FD}~~258{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_trunc}}\mathsf{\_f32x4\_u} \\ &&|& \def\mathdef2209#1{\mathtt{0x#1}}\mathdef2209{FD}~~259{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_trunc}}\mathsf{\_f32x4\_s\_zero} \\ &&|& \def\mathdef2210#1{\mathtt{0x#1}}\mathdef2210{FD}~~260{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_trunc}}\mathsf{\_f32x4\_u\_zero} \\ &&|& \def\mathdef2211#1{\mathtt{0x#1}}\mathdef2211{FD}~~261{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_madd}} \\ &&|& \def\mathdef2212#1{\mathtt{0x#1}}\mathdef2212{FD}~~262{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_nmadd}} \\ &&|& \def\mathdef2213#1{\mathtt{0x#1}}\mathdef2213{FD}~~263{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_madd}} \\ &&|& \def\mathdef2214#1{\mathtt{0x#1}}\mathdef2214{FD}~~264{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_nmadd}} \\ &&|& \def\mathdef2215#1{\mathtt{0x#1}}\mathdef2215{FD}~~265{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i8x16}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_laneselect}} \\ &&|& \def\mathdef2216#1{\mathtt{0x#1}}\mathdef2216{FD}~~266{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_laneselect}} \\ &&|& \def\mathdef2217#1{\mathtt{0x#1}}\mathdef2217{FD}~~267{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_laneselect}} \\ &&|& \def\mathdef2218#1{\mathtt{0x#1}}\mathdef2218{FD}~~268{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_laneselect}} \\ &&|& \def\mathdef2219#1{\mathtt{0x#1}}\mathdef2219{FD}~~269{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_min}} \\ &&|& \def\mathdef2220#1{\mathtt{0x#1}}\mathdef2220{FD}~~270{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32x4}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_max}} \\ &&|& \def\mathdef2221#1{\mathtt{0x#1}}\mathdef2221{FD}~~271{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_min}} \\ &&|& \def\mathdef2222#1{\mathtt{0x#1}}\mathdef2222{FD}~~272{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64x2}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_max}} \\ &&|& \def\mathdef2223#1{\mathtt{0x#1}}\mathdef2223{FD}~~273{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_q15mulr\_s}} \\ &&|& \def\mathdef2224#1{\mathtt{0x#1}}\mathdef2224{FD}~~274{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_dot}}\mathsf{\_i8x16\_i7x16\_s} \\ &&|& \def\mathdef2225#1{\mathtt{0x#1}}\mathdef2225{FD}~~275{:}\href{../binary/values.html#binary-int}{\def\mathdef1680#1{{\mathtt{u}#1}}\mathdef1680{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i16x8}}.\href{../syntax/instructions.html#syntax-instr-vec}{\mathsf{relaxed\_dot}}\mathsf{\_i8x16\_i7x16\_add\_s} \\ \end{array}\end{split}\]

Expressions

Expressions are encoded by their instruction sequence terminated with an explicit \(\def\mathdef2226#1{\mathtt{0x#1}}\mathdef2226{0B}\) opcode for \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}}\).

\[\begin{split}\begin{array}{llclll} \def\mathdef1674#1{{}}\mathdef1674{expression} & \href{../binary/instructions.html#binary-expr}{\mathtt{expr}} &::=& (\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef2227#1{\mathtt{0x#1}}\mathdef2227{0B} &\Rightarrow& \mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ \end{array}\end{split}\]