@@ -1836,31 +1836,31 @@ Most other vector instructions are defined in terms of numeric operators that ar
1836
1836
1837
1837
1. Assert: due to :ref: `validation <valid-vec-replace_lane >`, :math: `x < \dim (\shape )`.
1838
1838
1839
- 2. Let :math: `t_ 1 ` be the type :math: `\unpacked (\shape )`.
1839
+ 2. Let :math: `t_ 2 ` be the type :math: `\unpacked (\shape )`.
1840
1840
1841
1841
3. Assert: due to :ref: `validation <valid-vec-replace_lane >`, a value of :ref: `value type <syntax-valtype >` :math: `t_1 ` is on the top of the stack.
1842
1842
1843
- 4. Pop the value :math: `t_ 1 .\CONST ~c_ 1 ` from the stack.
1843
+ 4. Pop the value :math: `t_ 2 .\CONST ~c_ 2 ` from the stack.
1844
1844
1845
1845
5. Assert: due to :ref: `validation <valid-vec-replace_lane >`, a value of :ref: `value type <syntax-valtype >` |V128 | is on the top of the stack.
1846
1846
1847
- 6. Pop the value :math: `\V128 .\VCONST ~c_ 2 ` from the stack.
1847
+ 6. Pop the value :math: `\V128 .\VCONST ~c_ 1 ` from the stack.
1848
1848
1849
- 7. Let :math: `i^\ast ` be the result of computing :math: `\lanes _{\shape }(c_ 2 )`.
1849
+ 7. Let :math: `i^\ast ` be the result of computing :math: `\lanes _{\shape }(c_ 1 )`.
1850
1850
1851
- 8. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\shape }(i^\ast \with [x] = c_ 1 )`.
1851
+ 8. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{\shape }(i^\ast \with [x] = c_ 2 )`.
1852
1852
1853
1853
9. Push :math: `\V128 .\VCONST ~c` on the stack.
1854
1854
1855
1855
.. math ::
1856
1856
\begin {array}{l}
1857
1857
\begin {array}{lcl@{\qquad }l}
1858
- (t_ 1 \ K {.}\CONST ~c_1 )~(\V 128 \ K {.}\VCONST ~c_2 )~(\shape\K {.}\REPLACELANE ~x) &\stepto & (\V128 \K {.}\VCONST ~c)
1858
+ (\V 128 \ K {.}\VCONST ~c_1 )~(t_ 2 \ K {.}\CONST ~c_2 )~(\shape\K {.}\REPLACELANE ~x) &\stepto & (\V128 \K {.}\VCONST ~c)
1859
1859
\end {array}
1860
1860
\\ \qquad
1861
1861
\begin {array}[t]{@{}r@{~}l@{}}
1862
- (\iff & i^\ast = \lanes _{\shape }(c_ 2 ) \\
1863
- \wedge & c = \lanes ^{-1 }_{\shape }(i^\ast \with [x] = c_ 1 ))
1862
+ (\iff & i^\ast = \lanes _{\shape }(c_ 1 ) \\
1863
+ \wedge & c = \lanes ^{-1 }_{\shape }(i^\ast \with [x] = c_ 2 ))
1864
1864
\end {array}
1865
1865
\end {array}
1866
1866
@@ -1992,9 +1992,9 @@ Most other vector instructions are defined in terms of numeric operators that ar
1992
1992
1993
1993
1. Assert: due to :ref: `validation <valid-vtestop >`, a value of :ref: `value type <syntax-valtype >` |V128 | is on the top of the stack.
1994
1994
1995
- 2. Pop the value :math: `\V128 .\VCONST ~c_ 1 ` from the stack.
1995
+ 2. Pop the value :math: `\V128 .\VCONST ~c ` from the stack.
1996
1996
1997
- 3. Let :math: `i_1 ^\ast ` be the result of computing :math: `\lanes _{\shape }(c_ 1 )`.
1997
+ 3. Let :math: `i_1 ^\ast ` be the result of computing :math: `\lanes _{\shape }(c )`.
1998
1998
1999
1999
4. Let :math: `i` be the result of computing :math: `\tobool (\bigwedge (i_1 \neq 0 )^\ast )`.
2000
2000
@@ -2004,7 +2004,7 @@ Most other vector instructions are defined in terms of numeric operators that ar
2004
2004
.. math ::
2005
2005
\begin {array}{l}
2006
2006
\begin {array}{lcl@{\qquad }l}
2007
- (\V128 \K {.}\VCONST ~c_ 1 )~\shape\K {.}\ALLTRUE &\stepto & (\I32 \K {.}\CONST ~i)
2007
+ (\V128 \K {.}\VCONST ~c )~\shape\K {.}\ALLTRUE &\stepto & (\I32 \K {.}\CONST ~i)
2008
2008
\end {array}
2009
2009
\\ \qquad
2010
2010
\begin {array}[t]{@{}r@{~}l@{}}
@@ -2021,7 +2021,7 @@ Most other vector instructions are defined in terms of numeric operators that ar
2021
2021
2022
2022
1. Assert: due to :ref: `validation <valid-vec-bitmask >`, a value of :ref: `value type <syntax-valtype >` |V128 | is on the top of the stack.
2023
2023
2024
- 2. Pop the value :math: `\V128 .\VCONST ~c_ 1 ` from the stack.
2024
+ 2. Pop the value :math: `\V128 .\VCONST ~c ` from the stack.
2025
2025
2026
2026
3. Let :math: `i_1 ^N` be the result of computing :math: `\lanes _{t\K {x}N}(c)`.
2027
2027
@@ -2031,14 +2031,14 @@ Most other vector instructions are defined in terms of numeric operators that ar
2031
2031
2032
2032
6. Let :math: `j^\ast ` be the concatenation of the two sequences :math: `i_2 ^N` and :math: `0 ^{32 -N}`.
2033
2033
2034
- 7. Let :math: `c ` be the result of computing :math: `\ibits _{32 }^{-1 }(j^\ast )`.
2034
+ 7. Let :math: `i ` be the result of computing :math: `\ibits _{32 }^{-1 }(j^\ast )`.
2035
2035
2036
- 8. Push the value :math: `\I32 .\CONST ~c ` onto the stack.
2036
+ 8. Push the value :math: `\I32 .\CONST ~i ` onto the stack.
2037
2037
2038
2038
.. math ::
2039
2039
\begin {array}{lcl@{\qquad }l}
2040
- (\V128 \K {.}\VCONST ~c_ 1 )~t\K {x}N\K {.}\BITMASK &\stepto & (\I32 \K {.}\CONST ~c )
2041
- & (\iff c = \ibits _{32 }^{-1 }(\ilts _{|t|}(\lanes _{t\K {x}N}(c), 0 ^N)))
2040
+ (\V128 \K {.}\VCONST ~c )~t\K {x}N\K {.}\BITMASK &\stepto & (\I32 \K {.}\CONST ~i )
2041
+ & (\iff i = \ibits _{32 }^{-1 }(\ilts _{|t|}(\lanes _{t\K {x}N}(c), 0 ^N)))
2042
2042
\\
2043
2043
\end {array}
2044
2044
@@ -2160,8 +2160,8 @@ where:
2160
2160
\end {array}
2161
2161
2162
2162
2163
- :math: `t_2 \K {x}N\K {.}\vcvtop\K {\_ }t_1 \K {x}M\K {\_ }\sx\K {\_zero}`
2164
- ...............................................................
2163
+ :math: `t_2 \K {x}N\K {.}\vcvtop\K {\_ }t_1 \K {x}M\K {\_ }\sx ^? \K {\_zero}`
2164
+ .................................................................
2165
2165
2166
2166
1. Assert: due to :ref: `syntax <syntax-instr-vec >`, :math: `N = 2 \cdot M`.
2167
2167
@@ -2171,7 +2171,7 @@ where:
2171
2171
2172
2172
4. Let :math: `i^\ast ` be the result of computing :math: `\lanes _{t_1 \K {x}M}(c_1 )`.
2173
2173
2174
- 5. Let :math: `j^\ast ` be the result of computing :math: `\vcvtop ^{\sx }_{|t_1 |,|t_2 |}(i^\ast )`.
2174
+ 5. Let :math: `j^\ast ` be the result of computing :math: `\vcvtop ^{\sx ^? }_{|t_1 |,|t_2 |}(i^\ast )`.
2175
2175
2176
2176
6. Let :math: `k^\ast ` be the concatenation of the two sequences :math: `j^\ast ` and :math: `0 ^M`.
2177
2177
@@ -2182,11 +2182,11 @@ where:
2182
2182
.. math ::
2183
2183
\begin {array}{l}
2184
2184
\begin {array}{lcl@{\qquad }l}
2185
- (\V128 \K {.}\VCONST ~c_1 )~t_2 \K {x}N\K {.}\vcvtop\K {\_ }t_1 \K {x}M\K {\_ }\sx\K {\_zero} &\stepto & (\V128 \K {.}\VCONST ~c) \\
2185
+ (\V128 \K {.}\VCONST ~c_1 )~t_2 \K {x}N\K {.}\vcvtop\K {\_ }t_1 \K {x}M\K {\_ }\sx ^? \K {\_zero} &\stepto & (\V128 \K {.}\VCONST ~c) \\
2186
2186
\end {array}
2187
2187
\\ \qquad
2188
2188
\begin {array}[t]{@{}r@{~}l@{}}
2189
- (\iff & c = \lanes ^{-1 }_{t_2 \K {x}N}(\vcvtop ^{\sx }_{|t_1 |,|t_2 |}(\lanes _{t_1 \K {x}M}(c_1 ))~0 ^M))
2189
+ (\iff & c = \lanes ^{-1 }_{t_2 \K {x}N}(\vcvtop ^{\sx ^? }_{|t_1 |,|t_2 |}(\lanes _{t_1 \K {x}M}(c_1 ))~0 ^M))
2190
2190
\end {array}
2191
2191
\end {array}
2192
2192
@@ -2265,7 +2265,7 @@ where:
2265
2265
2266
2266
10. Let :math: `k_2 ^\ast ` be the result of computing :math: `\extend ^{\sx }_{|t_1 |,|t_2 |}(j_2 ^\ast )`.
2267
2267
2268
- 11. Let :math: `k^\ast ` be the result of computing :math: `\imul _{t_2 \K {x}N }(k_1 ^\ast , k_2 ^\ast )`.
2268
+ 11. Let :math: `k^\ast ` be the result of computing :math: `\imul _{| t_2 | }(k_1 ^\ast , k_2 ^\ast )`.
2269
2269
2270
2270
12. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{t_2 \K {x}N}(k^\ast )`.
2271
2271
@@ -2279,7 +2279,7 @@ where:
2279
2279
\begin {array}[t]{@{}r@{~}l@{}}
2280
2280
(\iff & i^\ast = \lanes _{t_1 \K {x}M}(c_1 )[\half (0 , N) \slice N] \\
2281
2281
\wedge & j^\ast = \lanes _{t_1 \K {x}M}(c_2 )[\half (0 , N) \slice N] \\
2282
- \wedge & c = \lanes ^{-1 }_{t_2 \K {x}N}(\imul _{t_2 \K {x}N }(\extend ^{\sx }_{|t_1 |,|t_2 |}(i^\ast ), \extend ^{\sx }_{|t_1 |,|t_2 |}(j^\ast ))))
2282
+ \wedge & c = \lanes ^{-1 }_{t_2 \K {x}N}(\imul _{| t_2 | }(\extend ^{\sx }_{|t_1 |,|t_2 |}(i^\ast ), \extend ^{\sx }_{|t_1 |,|t_2 |}(j^\ast ))))
2283
2283
\end {array}
2284
2284
2285
2285
where:
@@ -2306,7 +2306,7 @@ where:
2306
2306
2307
2307
5. Let :math: `(j_1 ~j_2 )^\ast ` be the result of computing :math: `\extend ^{\sx }_{|t_1 |,|t_2 |}(i^\ast )`.
2308
2308
2309
- 6. Let :math: `k^\ast ` be the result of computing :math: `\iadd _{N }(j_1 , j_2 )^\ast `.
2309
+ 6. Let :math: `k^\ast ` be the result of computing :math: `\iadd _{|t_ 2 | }(j_1 , j_2 )^\ast `.
2310
2310
2311
2311
7. Let :math: `c` be the result of computing :math: `\lanes ^{-1 }_{t_2 \K {x}N}(k^\ast )`.
2312
2312
@@ -2320,7 +2320,7 @@ where:
2320
2320
\\ \qquad
2321
2321
\begin {array}[t]{@{}r@{~}l@{}}
2322
2322
(\iff & (i_1 ~i_2 )^\ast = \extend ^{\sx }_{|t_1 |,|t_2 |}(\lanes _{t_1 \K {x}M}(c_1 )) \\
2323
- \wedge & j^\ast = \iadd _{N }(i_1 , i_2 )^\ast \\
2323
+ \wedge & j^\ast = \iadd _{|t_ 2 | }(i_1 , i_2 )^\ast \\
2324
2324
\wedge & c = \lanes ^{-1 }_{t_2 \K {x}N}(j^\ast ))
2325
2325
\end {array}
2326
2326
\end {array}
0 commit comments