@@ -172,6 +172,7 @@ Occasionally, it is convenient to group operators together according to the foll
172
172
173
173
.. index :: ! simd instruction, fixed-width simd, value, value type
174
174
pair: abstract syntax; instruction
175
+ .. _syntax-laneidx :
175
176
.. _syntax-vunop :
176
177
.. _syntax-vbinop :
177
178
.. _syntax-vsunop :
@@ -202,20 +203,21 @@ SIMD instructions provide basic operations over :ref:`values <syntax-value>` of
202
203
\K {f32 x4 } ~|~ \K {f64 x2 } \\
203
204
\production {vshape} & \X {vxx} &::=&
204
205
\X {ixx} ~|~ \X {fxx} \\
206
+ \production {lane index} & \laneidx &::=& \byte \\
205
207
\production {instruction} & \instr &::=&
206
208
\dots \\&&|&
207
209
\K {v128 .}\CONST ~\xref {syntax/values}{syntax-simd}{\vX {\X {nnn}}} \\&&|&
208
210
\K {v128 .}\vsunop \\&&|&
209
211
\K {v128 .}\vsbinop \\&&|&
210
212
\K {v128 .}\vsternop \\&&|&
211
- \K {v8 x16 .}\SHUFFLE ~|~ \K {v8 x16 .}\SWIZZLE \\&&|&
213
+ \K {v8 x16 .}\SHUFFLE ~ \laneidx ^{ 16 } ~|~ \K {v8 x16 .}\SWIZZLE \\&&|&
212
214
\X {vxx}\K {.}\SPLAT \\&&|&
213
- \K {i8 x16 .}\EXTRACTLANE\K {\_ }\sx ~|~
214
- \K {i16 x8 .}\EXTRACTLANE\K {\_ }\sx \\&&|&
215
- \K {i32 x4 .}\EXTRACTLANE ~|~
216
- \K {i64 x2 .}\EXTRACTLANE \\&&|&
217
- \X {fxx}\K {.}\EXTRACTLANE \\&&|&
218
- \X {vxx}\K {.}\REPLACELANE \\&&|&
215
+ \K {i8 x16 .}\EXTRACTLANE\K {\_ }\sx ~ \laneidx ~|~
216
+ \K {i16 x8 .}\EXTRACTLANE\K {\_ }\sx ~ \laneidx \\&&|&
217
+ \K {i32 x4 .}\EXTRACTLANE ~ \laneidx ~|~
218
+ \K {i64 x2 .}\EXTRACTLANE ~ \laneidx \\&&|&
219
+ \X {fxx}\K {.}\EXTRACTLANE ~ \laneidx \\&&|&
220
+ \X {vxx}\K {.}\REPLACELANE ~ \laneidx \\&&|&
219
221
\X {ixx}\K {.}\virelop \\&&|&
220
222
\X {fxx}\K {.}\vfrelop \\&&|&
221
223
\K {i8 x16 .}\viunop ~|~
0 commit comments