|
96 | 96 | <li><a href="#i_extractelement">'<tt>extractelement</tt>' Instruction</a></li>
|
97 | 97 | <li><a href="#i_insertelement">'<tt>insertelement</tt>' Instruction</a></li>
|
98 | 98 | <li><a href="#i_shufflevector">'<tt>shufflevector</tt>' Instruction</a></li>
|
99 |
| - <li><a href="#i_vsetint">'<tt>vsetint</tt>' Instruction</a></li> |
100 |
| - <li><a href="#i_vsetfp">'<tt>vsetfp</tt>' Instruction</a></li> |
101 |
| - <li><a href="#i_vselect">'<tt>vselect</tt>' Instruction</a></li> |
102 | 99 | </ol>
|
103 | 100 | </li>
|
104 | 101 | <li><a href="#memoryops">Memory Access Operations</a>
|
@@ -2060,194 +2057,6 @@ <h5>Example:</h5>
|
2060 | 2057 | </pre>
|
2061 | 2058 | </div>
|
2062 | 2059 |
|
2063 |
| - |
2064 |
| -<!-- _______________________________________________________________________ --> |
2065 |
| -<div class="doc_subsubsection"> <a name="i_vsetint">'<tt>vsetint</tt>' |
2066 |
| -Instruction</a> </div> |
2067 |
| -<div class="doc_text"> |
2068 |
| -<h5>Syntax:</h5> |
2069 |
| -<pre><result> = vsetint <op>, <n x <ty>> <var1>, <var2> <i>; yields <n x bool></i> |
2070 |
| -</pre> |
2071 |
| - |
2072 |
| -<h5>Overview:</h5> |
2073 |
| - |
2074 |
| -<p>The '<tt>vsetint</tt>' instruction takes two integer vectors and |
2075 |
| -returns a vector of boolean values representing, at each position, the |
2076 |
| -result of the comparison between the values at that position in the |
2077 |
| -two operands.</p> |
2078 |
| - |
2079 |
| -<h5>Arguments:</h5> |
2080 |
| - |
2081 |
| -<p>The arguments to a '<tt>vsetint</tt>' instruction are a comparison |
2082 |
| -operation and two value arguments. The value arguments must be of <a |
2083 |
| -href="#t_integral">integral</a> <a href="#t_packed">packed</a> type, |
2084 |
| -and they must have identical types. The operation argument must be |
2085 |
| -one of <tt>eq</tt>, <tt>ne</tt>, <tt>slt</tt>, <tt>sgt</tt>, |
2086 |
| -<tt>sle</tt>, <tt>sge</tt>, <tt>ult</tt>, <tt>ugt</tt>, <tt>ule</tt>, |
2087 |
| -<tt>uge</tt>, <tt>true</tt>, and <tt>false</tt>. The result is a |
2088 |
| -packed <tt>bool</tt> value with the same length as each operand.</p> |
2089 |
| - |
2090 |
| -<h5>Semantics:</h5> |
2091 |
| - |
2092 |
| -<p>The following table shows the semantics of '<tt>vsetint</tt>'. For |
2093 |
| -each position of the result, the comparison is done on the |
2094 |
| -corresponding positions of the two value arguments. Note that the |
2095 |
| -signedness of the comparison depends on the comparison opcode and |
2096 |
| -<i>not</i> on the signedness of the value operands. E.g., <tt>vsetint |
2097 |
| -slt <4 x unsigned> %x, %y</tt> does an elementwise <i>signed</i> |
2098 |
| -comparison of <tt>%x</tt> and <tt>%y</tt>.</p> |
2099 |
| - |
2100 |
| -<table border="1" cellspacing="0" cellpadding="4"> |
2101 |
| - <tbody> |
2102 |
| - <tr><th>Operation</th><th>Result is true iff</th><th>Comparison is</th></tr> |
2103 |
| - <tr><td><tt>eq</tt></td><td>var1 == var2</td><td>--</td></tr> |
2104 |
| - <tr><td><tt>ne</tt></td><td>var1 != var2</td><td>--</td></tr> |
2105 |
| - <tr><td><tt>slt</tt></td><td>var1 < var2</td><td>signed</td></tr> |
2106 |
| - <tr><td><tt>sgt</tt></td><td>var1 > var2</td><td>signed</td></tr> |
2107 |
| - <tr><td><tt>sle</tt></td><td>var1 <= var2</td><td>signed</td></tr> |
2108 |
| - <tr><td><tt>sge</tt></td><td>var1 >= var2</td><td>signed</td></tr> |
2109 |
| - <tr><td><tt>ult</tt></td><td>var1 < var2</td><td>unsigned</td></tr> |
2110 |
| - <tr><td><tt>ugt</tt></td><td>var1 > var2</td><td>unsigned</td></tr> |
2111 |
| - <tr><td><tt>ule</tt></td><td>var1 <= var2</td><td>unsigned</td></tr> |
2112 |
| - <tr><td><tt>uge</tt></td><td>var1 >= var2</td><td>unsigned</td></tr> |
2113 |
| - <tr><td><tt>true</tt></td><td>always</td><td>--</td></tr> |
2114 |
| - <tr><td><tt>false</tt></td><td>never</td><td>--</td></tr> |
2115 |
| - </tbody> |
2116 |
| -</table> |
2117 |
| - |
2118 |
| -<h5>Example:</h5> |
2119 |
| -<pre> <result> = vsetint eq <2 x int> <int 0, int 1>, <int 1, int 0> <i>; yields {<2 x bool>}:result = false, false</i> |
2120 |
| - <result> = vsetint ne <2 x int> <int 0, int 1>, <int 1, int 0> <i>; yields {<2 x bool>}:result = true, true</i> |
2121 |
| - <result> = vsetint slt <2 x int> <int 0, int 1>, <int 1, int 0> <i>; yields {<2 x bool>}:result = true, false</i> |
2122 |
| - <result> = vsetint sgt <2 x int> <int 0, int 1>, <int 1, int 0> <i>; yields {<2 x bool>}:result = false, true</i> |
2123 |
| - <result> = vsetint sle <2 x int> <int 0, int 1>, <int 1, int 0> <i>; yields {<2 x bool>}:result = true, false</i> |
2124 |
| - <result> = vsetint sge <2 x int> <int 0, int 1>, <int 1, int 0> <i>; yields {<2 x bool>}:result = false, true</i> |
2125 |
| -</pre> |
2126 |
| -</div> |
2127 |
| - |
2128 |
| -<!-- _______________________________________________________________________ --> |
2129 |
| -<div class="doc_subsubsection"> <a name="i_vsetfp">'<tt>vsetfp</tt>' |
2130 |
| -Instruction</a> </div> |
2131 |
| -<div class="doc_text"> |
2132 |
| -<h5>Syntax:</h5> |
2133 |
| -<pre><result> = vsetfp <op>, <n x <ty>> <var1>, <var2> <i>; yields <n x bool></i> |
2134 |
| -</pre> |
2135 |
| - |
2136 |
| -<h5>Overview:</h5> |
2137 |
| - |
2138 |
| -<p>The '<tt>vsetfp</tt>' instruction takes two floating point vector |
2139 |
| -arguments and returns a vector of boolean values representing, at each |
2140 |
| -position, the result of the comparison between the values at that |
2141 |
| -position in the two operands.</p> |
2142 |
| - |
2143 |
| -<h5>Arguments:</h5> |
2144 |
| - |
2145 |
| -<p>The arguments to a '<tt>vsetfp</tt>' instruction are a comparison |
2146 |
| -operation and two value arguments. The value arguments must be of <a |
2147 |
| -href="t_floating">floating point</a> <a href="#t_packed">packed</a> |
2148 |
| -type, and they must have identical types. The operation argument must |
2149 |
| -be one of <tt>eq</tt>, <tt>ne</tt>, <tt>lt</tt>, <tt>gt</tt>, |
2150 |
| -<tt>le</tt>, <tt>ge</tt>, <tt>oeq</tt>, <tt>one</tt>, <tt>olt</tt>, |
2151 |
| -<tt>ogt</tt>, <tt>ole</tt>, <tt>oge</tt>, <tt>ueq</tt>, <tt>une</tt>, |
2152 |
| -<tt>ult</tt>, <tt>ugt</tt>, <tt>ule</tt>, <tt>uge</tt>, <tt>o</tt>, |
2153 |
| -<tt>u</tt>, <tt>true</tt>, and <tt>false</tt>. The result is a packed |
2154 |
| -<tt>bool</tt> value with the same length as each operand.</p> |
2155 |
| - |
2156 |
| -<h5>Semantics:</h5> |
2157 |
| - |
2158 |
| -<p>The following table shows the semantics of '<tt>vsetfp</tt>' for |
2159 |
| -floating point types. If either operand is a floating point Not a |
2160 |
| -Number (NaN) value, the operation is unordered, and the value in the |
2161 |
| -first column below is produced at that position. Otherwise, the |
2162 |
| -operation is ordered, and the value in the second column is |
2163 |
| -produced.</p> |
2164 |
| - |
2165 |
| -<table border="1" cellspacing="0" cellpadding="4"> |
2166 |
| - <tbody> |
2167 |
| - <tr><th>Operation</th><th>If unordered<th>Otherwise true iff</th></tr> |
2168 |
| - <tr><td><tt>eq</tt></td><td>undefined</td><td>var1 == var2</td></tr> |
2169 |
| - <tr><td><tt>ne</tt></td><td>undefined</td><td>var1 != var2</td></tr> |
2170 |
| - <tr><td><tt>lt</tt></td><td>undefined</td><td>var1 < var2</td></tr> |
2171 |
| - <tr><td><tt>gt</tt></td><td>undefined</td><td>var1 > var2</td></tr> |
2172 |
| - <tr><td><tt>le</tt></td><td>undefined</td><td>var1 <= var2</td></tr> |
2173 |
| - <tr><td><tt>ge</tt></td><td>undefined</td><td>var1 >= var2</td></tr> |
2174 |
| - <tr><td><tt>oeq</tt></td><td>false</td><td>var1 == var2</td></tr> |
2175 |
| - <tr><td><tt>one</tt></td><td>false</td><td>var1 != var2</td></tr> |
2176 |
| - <tr><td><tt>olt</tt></td><td>false</td><td>var1 < var2</td></tr> |
2177 |
| - <tr><td><tt>ogt</tt></td><td>false</td><td>var1 > var2</td></tr> |
2178 |
| - <tr><td><tt>ole</tt></td><td>false</td><td>var1 <= var2</td></tr> |
2179 |
| - <tr><td><tt>oge</tt></td><td>false</td><td>var1 >= var2</td></tr> |
2180 |
| - <tr><td><tt>ueq</tt></td><td>true</td><td>var1 == var2</td></tr> |
2181 |
| - <tr><td><tt>une</tt></td><td>true</td><td>var1 != var2</td></tr> |
2182 |
| - <tr><td><tt>ult</tt></td><td>true</td><td>var1 < var2</td></tr> |
2183 |
| - <tr><td><tt>ugt</tt></td><td>true</td><td>var1 > var2</td></tr> |
2184 |
| - <tr><td><tt>ule</tt></td><td>true</td><td>var1 <= var2</td></tr> |
2185 |
| - <tr><td><tt>uge</tt></td><td>true</td><td>var1 >= var2</td></tr> |
2186 |
| - <tr><td><tt>o</tt></td><td>false</td><td>always</td></tr> |
2187 |
| - <tr><td><tt>u</tt></td><td>true</td><td>never</td></tr> |
2188 |
| - <tr><td><tt>true</tt></td><td>true</td><td>always</td></tr> |
2189 |
| - <tr><td><tt>false</tt></td><td>false</td><td>never</td></tr> |
2190 |
| - </tbody> |
2191 |
| -</table> |
2192 |
| - |
2193 |
| -<h5>Example:</h5> |
2194 |
| -<pre> <result> = vsetfp eq <2 x float> <float 0.0, float 1.0>, <float 1.0, float 0.0> <i>; yields {<2 x bool>}:result = false, false</i> |
2195 |
| - <result> = vsetfp ne <2 x float> <float 0.0, float 1.0>, <float 1.0, float 0.0> <i>; yields {<2 x bool>}:result = true, true</i> |
2196 |
| - <result> = vsetfp lt <2 x float> <float 0.0, float 1.0>, <float 1.0, float 0.0> <i>; yields {<2 x bool>}:result = true, false</i> |
2197 |
| - <result> = vsetfp gt <2 x float> <float 0.0, float 1.0>, <float 1.0, float 0.0> <i>; yields {<2 x bool>}:result = false, true</i> |
2198 |
| - <result> = vsetfp le <2 x float> <float 0.0, float 1.0>, <float 1.0, float 0.0> <i>; yields {<2 x bool>}:result = true, false</i> |
2199 |
| - <result> = vsetfp ge <2 x float> <float 0.0, float 1.0>, <float 1.0, float 0.0> <i>; yields {<2 x bool>}:result = false, true</i> |
2200 |
| -</pre> |
2201 |
| -</div> |
2202 |
| - |
2203 |
| -<!-- _______________________________________________________________________ --> |
2204 |
| -<div class="doc_subsubsection"> |
2205 |
| - <a name="i_vselect">'<tt>vselect</tt>' Instruction</a> |
2206 |
| -</div> |
2207 |
| - |
2208 |
| -<div class="doc_text"> |
2209 |
| - |
2210 |
| -<h5>Syntax:</h5> |
2211 |
| - |
2212 |
| -<pre> |
2213 |
| - <result> = vselect <n x bool> <cond>, <n x <ty>> <val1>, <n x <ty>> <val2> <i>; yields <n x <ty>></i> |
2214 |
| -</pre> |
2215 |
| - |
2216 |
| -<h5>Overview:</h5> |
2217 |
| - |
2218 |
| -<p> |
2219 |
| -The '<tt>vselect</tt>' instruction chooses one value at each position |
2220 |
| -of a vector based on a condition. |
2221 |
| -</p> |
2222 |
| - |
2223 |
| - |
2224 |
| -<h5>Arguments:</h5> |
2225 |
| - |
2226 |
| -<p> |
2227 |
| -The '<tt>vselect</tt>' instruction requires a <a |
2228 |
| -href="#t_packed">packed</a> <tt>bool</tt> value indicating the |
2229 |
| -condition at each vector position, and two values of the same packed |
2230 |
| -type. All three operands must have the same length. The type of the |
2231 |
| -result is the same as the type of the two value operands.</p> |
2232 |
| - |
2233 |
| -<h5>Semantics:</h5> |
2234 |
| - |
2235 |
| -<p> |
2236 |
| -At each position where the <tt>bool</tt> vector is true, that position |
2237 |
| -of the result gets its value from the first value argument; otherwise, |
2238 |
| -it gets its value from the second value argument. |
2239 |
| -</p> |
2240 |
| - |
2241 |
| -<h5>Example:</h5> |
2242 |
| - |
2243 |
| -<pre> |
2244 |
| - %X = vselect bool <2 x bool> <bool true, bool false>, <2 x ubyte> <ubyte 17, ubyte 17>, |
2245 |
| - <2 x ubyte> <ubyte 42, ubyte 42> <i>; yields <2 x ubyte>:17, 42</i> |
2246 |
| -</pre> |
2247 |
| -</div> |
2248 |
| - |
2249 |
| - |
2250 |
| - |
2251 | 2060 | <!-- ======================================================================= -->
|
2252 | 2061 | <div class="doc_subsection">
|
2253 | 2062 | <a name="memoryops">Memory Access Operations</a>
|
|
0 commit comments