@@ -20,8 +20,9 @@ The mapping of numeric instructions to their underlying operators is expressed b
20
20
21
21
.. math ::
22
22
\begin {array}{lll@{\qquad }l}
23
- \X {op}_{\K {i}N}(n_1 ,\dots ,n_k) &=& \F {i}\X {op}_N(n_1 ,\dots ,n_k) \\
24
- \X {op}_{\K {f}N}(z_1 ,\dots ,z_k) &=& \F {f}\X {op}_N(z_1 ,\dots ,z_k) \\
23
+ \X {op}_{\IN }(i_1 ,\dots ,i_k) &=& \F {i}\X {op}_N(i_1 ,\dots ,i_k) \\
24
+ \X {op}_{\FN }(z_1 ,\dots ,z_k) &=& \F {f}\X {op}_N(z_1 ,\dots ,z_k) \\
25
+ \X {op}_{\VN }(i_1 ,\dots ,i_k) &=& \F {i}\X {op}_N(i_1 ,\dots ,i_k) \\
25
26
\end {array}
26
27
27
28
And for :ref: `conversion operators <exec-cvtop >`:
@@ -316,14 +317,14 @@ Most vector instructions are defined in terms of generic numeric operators appli
316
317
317
318
2. Pop the value :math: `\V128 .\VCONST ~c_1 ` from the stack.
318
319
319
- 3. Let :math: `c` be the result of computing :math: `\vvunop _{\I 128 }(c_1 )`.
320
+ 3. Let :math: `c` be the result of computing :math: `\vvunop _{\V 128 }(c_1 )`.
320
321
321
322
4. Push the value :math: `\V128 .\VCONST ~c` to the stack.
322
323
323
324
.. math ::
324
325
\begin {array}{lcl@{\qquad }l}
325
326
(\V128 \K {.}\VCONST ~c_1 )~\V128 \K {.}\vvunop &\stepto & (\V128 \K {.}\VCONST ~c)
326
- & (\iff c = \vvunop _{\I 128 }(c_1 )) \\
327
+ & (\iff c = \vvunop _{\V 128 }(c_1 )) \\
327
328
\end {array}
328
329
329
330
@@ -338,14 +339,14 @@ Most vector instructions are defined in terms of generic numeric operators appli
338
339
339
340
3. Pop the value :math: `\V128 .\VCONST ~c_1 ` from the stack.
340
341
341
- 4. Let :math: `c` be the result of computing :math: `\vvbinop _{\I 128 }(c_1 , c_2 )`.
342
+ 4. Let :math: `c` be the result of computing :math: `\vvbinop _{\V 128 }(c_1 , c_2 )`.
342
343
343
344
5. Push the value :math: `\V128 .\VCONST ~c` to the stack.
344
345
345
346
.. math ::
346
347
\begin {array}{lcl@{\qquad }l}
347
348
(\V128 \K {.}\VCONST ~c_1 )~(\V128 \K {.}\VCONST ~c_2 )~\V128 \K {.}\vvbinop &\stepto & (\V128 \K {.}\VCONST ~c)
348
- & (\iff c = \vvbinop _{\I 128 }(c_1 , c_2 )) \\
349
+ & (\iff c = \vvbinop _{\V 128 }(c_1 , c_2 )) \\
349
350
\end {array}
350
351
351
352
@@ -362,14 +363,14 @@ Most vector instructions are defined in terms of generic numeric operators appli
362
363
363
364
4. Pop the value :math: `\V128 .\VCONST ~c_1 ` from the stack.
364
365
365
- 5. Let :math: `c` be the result of computing :math: `\vvternop _{\I 128 }(c_1 , c_2 , c_3 )`.
366
+ 5. Let :math: `c` be the result of computing :math: `\vvternop _{\V 128 }(c_1 , c_2 , c_3 )`.
366
367
367
368
6. Push the value :math: `\V128 .\VCONST ~c` to the stack.
368
369
369
370
.. math ::
370
371
\begin {array}{lcl@{\qquad }l}
371
372
(\V128 \K {.}\VCONST ~c_1 )~(\V128 \K {.}\VCONST ~c_2 )~(\V128 \K {.}\VCONST ~c_3 )~\V128 \K {.}\vvternop &\stepto & (\V128 \K {.}\VCONST ~c)
372
- & (\iff c = \vvternop _{\I 128 }(c_1 , c_2 , c_3 )) \\
373
+ & (\iff c = \vvternop _{\V 128 }(c_1 , c_2 , c_3 )) \\
373
374
\end {array}
374
375
375
376
@@ -403,15 +404,15 @@ Most vector instructions are defined in terms of generic numeric operators appli
403
404
404
405
2. Pop the value :math: `\V128 .\VCONST ~c_2 ` from the stack.
405
406
406
- 3. Let :math: `i^\ast ` be the result of computing :math: `\lanes _{i 8 x 16 }(c_2 )`.
407
+ 3. Let :math: `i^\ast ` be the result of computing :math: `\lanes _{\I 8 X 16 }(c_2 )`.
407
408
408
409
4. Pop the value :math: `\V128 .\VCONST ~c_1 ` from the stack.
409
410
410
- 5. Let :math: `j^\ast ` be the result of computing :math: `\lanes _{i 8 x 16 }(c_1 )`.
411
+ 5. Let :math: `j^\ast ` be the result of computing :math: `\lanes _{\I 8 X 16 }(c_1 )`.
411
412
412
413
6. Let :math: `c^\ast ` be the concatenation of the two sequences :math: `j^\ast ` and :math: `0 ^{240 }`.
413
414
414
- 7. Let :math: `c'` be the result of computing :math: `\lanes ^{-1 }_{i 8 x 16 }(c^\ast [ i^\ast [0 ] ] \dots c^\ast [ i^\ast [15 ] ])`.
415
+ 7. Let :math: `c'` be the result of computing :math: `\lanes ^{-1 }_{\I 8 X 16 }(c^\ast [ i^\ast [0 ] ] \dots c^\ast [ i^\ast [15 ] ])`.
415
416
416
417
8. Push the value :math: `\V128 .\VCONST ~c'` onto the stack.
417
418
@@ -422,9 +423,9 @@ Most vector instructions are defined in terms of generic numeric operators appli
422
423
\end {array}
423
424
\\ \qquad
424
425
\begin {array}[t]{@{}r@{~}l@{}}
425
- (\iff & i^\ast = \lanes _{i 8 x 16 }(c_2 ) \\
426
- \wedge & c^\ast = \lanes _{i 8 x 16 }(c_1 )~0 ^{240 } \\
427
- \wedge & c' = \lanes ^{-1 }_{i 8 x 16 }(c^\ast [ i^\ast [0 ] ] \dots c^\ast [ i^\ast [15 ] ]))
426
+ (\iff & i^\ast = \lanes _{\I 8 X 16 }(c_2 ) \\
427
+ \wedge & c^\ast = \lanes _{\I 8 X 16 }(c_1 )~0 ^{240 } \\
428
+ \wedge & c' = \lanes ^{-1 }_{\I 8 X 16 }(c^\ast [ i^\ast [0 ] ] \dots c^\ast [ i^\ast [15 ] ]))
428
429
\end {array}
429
430
\end {array}
430
431
@@ -440,15 +441,15 @@ Most vector instructions are defined in terms of generic numeric operators appli
440
441
441
442
3. Pop the value :math: `\V128 .\VCONST ~c_2 ` from the stack.
442
443
443
- 4. Let :math: `i_2 ^\ast ` be the result of computing :math: `\lanes _{i 8 x 16 }(c_2 )`.
444
+ 4. Let :math: `i_2 ^\ast ` be the result of computing :math: `\lanes _{\I 8 X 16 }(c_2 )`.
444
445
445
446
5. Pop the value :math: `\V128 .\VCONST ~c_1 ` from the stack.
446
447
447
- 6. Let :math: `i_1 ^\ast ` be the result of computing :math: `\lanes _{i 8 x 16 }(c_1 )`.
448
+ 6. Let :math: `i_1 ^\ast ` be the result of computing :math: `\lanes _{\I 8 X 16 }(c_1 )`.
448
449
449
450
7. Let :math: `i^\ast ` be the concatenation of the two sequences :math: `i_1 ^\ast ` and :math: `i_2 ^\ast `.
450
451
451
- 8. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{i 8 x 16 }(i^\ast [x^\ast [0 ]] \dots i^\ast [x^\ast [15 ]])`.
452
+ 8. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\I 8 X 16 }(i^\ast [x^\ast [0 ]] \dots i^\ast [x^\ast [15 ]])`.
452
453
453
454
9. Push the value :math: `\V128 .\VCONST ~c` onto the stack.
454
455
@@ -459,8 +460,8 @@ Most vector instructions are defined in terms of generic numeric operators appli
459
460
\end {array}
460
461
\\ \qquad
461
462
\begin {array}[t]{@{}r@{~}l@{}}
462
- (\iff & i^\ast = \lanes _{i 8 x 16 }(c_1 )~\lanes _{i 8 x 16 }(c_2 ) \\
463
- \wedge & c = \lanes ^{-1 }_{i 8 x 16 }(i^\ast [x^\ast [0 ]] \dots i^\ast [x^\ast [15 ]]))
463
+ (\iff & i^\ast = \lanes _{\I 8 X 16 }(c_1 )~\lanes _{\I 8 X 16 }(c_2 ) \\
464
+ \wedge & c = \lanes ^{-1 }_{\I 8 X 16 }(i^\ast [x^\ast [0 ]] \dots i^\ast [x^\ast [15 ]]))
464
465
\end {array}
465
466
\end {array}
466
467
@@ -1844,7 +1845,7 @@ Memory Instructions
1844
1845
1845
1846
13. Let :math: `n_k` be the result of computing :math: `\extend ^{\sx }_{M,W}(m_k)`.
1846
1847
1847
- 14. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\X {i}W\K {x}N}(n_0 \dots n_{N-1 })`.
1848
+ 14. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\K {i}W\K {x}N}(n_0 \dots n_{N-1 })`.
1848
1849
1849
1850
15. Push the value :math: `\V128 .\CONST ~c` to the stack.
1850
1851
@@ -1861,7 +1862,7 @@ Memory Instructions
1861
1862
\wedge & \X {ea} + M \cdot N / 8 \leq |S.\SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA | \\
1862
1863
\wedge & \bytes _{\iM }(m_k) = S.\SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA [\X {ea} + k \cdot M/8 \slice M/8 ] \\
1863
1864
\wedge & W = M \cdot 2 \\
1864
- \wedge & c = \lanes ^{-1 }_{\X {i}W\K {x}N}(\extend ^{\sx }_{M,W}(m_0 ) \dots \extend ^{\sx }_{M,W}(m_{N-1 })))
1865
+ \wedge & c = \lanes ^{-1 }_{\K {i}W\K {x}N}(\extend ^{\sx }_{M,W}(m_0 ) \dots \extend ^{\sx }_{M,W}(m_{N-1 })))
1865
1866
\end {array}
1866
1867
\\[ 1 ex]
1867
1868
\begin {array}{lcl@{\qquad }l}
@@ -1903,7 +1904,7 @@ Memory Instructions
1903
1904
1904
1905
12. Let :math: `L` be the integer :math: `128 / N`.
1905
1906
1906
- 13. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\iN \K {x}L}(n^L)`.
1907
+ 13. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\IN \K {x}L}(n^L)`.
1907
1908
1908
1909
14. Push the value :math: `\V128 .\CONST ~c` to the stack.
1909
1910
@@ -1918,7 +1919,7 @@ Memory Instructions
1918
1919
(\iff & \X {ea} = i + \memarg .\OFFSET \\
1919
1920
\wedge & \X {ea} + N/8 \leq |S.\SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA | \\
1920
1921
\wedge & \bytes _{\iN }(n) = S.\SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA [\X {ea} \slice N/8 ] \\
1921
- \wedge & c = \lanes ^{-1 }_{\iN \K {x}L}(n^L))
1922
+ \wedge & c = \lanes ^{-1 }_{\IN \K {x}L}(n^L))
1922
1923
\end {array}
1923
1924
\\[ 1 ex]
1924
1925
\begin {array}{lcl@{\qquad }l}
@@ -2019,9 +2020,9 @@ Memory Instructions
2019
2020
2020
2021
14. Let :math: `L` be :math: `128 / N`.
2021
2022
2022
- 15. Let :math: `j^\ast ` be the result of computing :math: `\lanes _{\K {i}N \K {x}L}(v)`.
2023
+ 15. Let :math: `j^\ast ` be the result of computing :math: `\lanes _{\IN \K {x}L}(v)`.
2023
2024
2024
- 16. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\K {i}N \K {x}L}(j^\ast \with [x] = r)`.
2025
+ 16. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\IN \K {x}L}(j^\ast \with [x] = r)`.
2025
2026
2026
2027
17. Push the value :math: `\V128 .\CONST ~c` to the stack.
2027
2028
@@ -2037,7 +2038,7 @@ Memory Instructions
2037
2038
\wedge & \X {ea} + N/8 \leq |S.\SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA | \\
2038
2039
\wedge & \bytes _{\iN }(r) = S.\SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA [\X {ea} \slice N/8 ] \\
2039
2040
\wedge & L = 128 /N \\
2040
- \wedge & c = \lanes ^{-1 }_{\K {i}N \K {x}L}(\lanes _{\K {i}N \K {x}L}(v) \with [x] = r))
2041
+ \wedge & c = \lanes ^{-1 }_{\IN \K {x}L}(\lanes _{\IN \K {x}L}(v) \with [x] = r))
2041
2042
\end {array}
2042
2043
\\[ 1 ex]
2043
2044
\begin {array}{lcl@{\qquad }l}
@@ -2156,7 +2157,7 @@ Memory Instructions
2156
2157
2157
2158
12. Let :math: `L` be :math: `128 /N`.
2158
2159
2159
- 13. Let :math: `j^\ast ` be the result of computing :math: `\lanes _{\K {i}N \K {x}L}(c)`.
2160
+ 13. Let :math: `j^\ast ` be the result of computing :math: `\lanes _{\IN \K {x}L}(c)`.
2160
2161
2161
2162
14. Let :math: `b^\ast ` be the result of computing :math: `\bytes _{\iN }(j^\ast [x])`.
2162
2163
@@ -2173,7 +2174,7 @@ Memory Instructions
2173
2174
(\iff & \X {ea} = i + \memarg .\OFFSET \\
2174
2175
\wedge & \X {ea} + N \leq |S.\SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA | \\
2175
2176
\wedge & L = 128 /N \\
2176
- \wedge & S' = S \with \SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA [\X {ea} \slice N/8 ] = \bytes _{\iN }(\lanes _{\K {i}N \K {x}L}(c)[x]))
2177
+ \wedge & S' = S \with \SMEMS [F.\AMODULE .\MIMEMS [0 ]].\MIDATA [\X {ea} \slice N/8 ] = \bytes _{\iN }(\lanes _{\IN \K {x}L}(c)[x]))
2177
2178
\end {array}
2178
2179
\\[ 1 ex]
2179
2180
\begin {array}{lcl@{\qquad }l}
0 commit comments