forked from OSchip/llvm-project
Revise definition of part_select. The wrapping behavior is not useful so
in the reverse case the only difference is that the bits are returned in reverse order. llvm-svn: 37035
This commit is contained in:
parent
8d40e4d965
commit
70845c05e4
|
@ -4655,16 +4655,11 @@ only the <tt>%hiBit - %loBit</tt> bits set, as follows:</p>
|
|||
<li>A mask of the retained bits is created by shifting a -1 value.</li>
|
||||
<li>The mask is ANDed with <tt>%val</tt> to produce the result.
|
||||
</ol>
|
||||
<p>In reverse mode, a similar computation is made except that:</p>
|
||||
<ol>
|
||||
<li>The bits selected wrap around to include both the highest and lowest bits.
|
||||
For example, part.select(i16 X, 4, 7) selects bits from X with a mask of
|
||||
0x00F0 (forwards case) while part.select(i16 X, 8, 3) selects bits from X
|
||||
with a mask of 0xFF0F.</li>
|
||||
<li>The bits returned in the reverse case are reversed. So, if X has the value
|
||||
0x6ACF and we apply part.select(i16 X, 8, 3) to it, we get back the value
|
||||
0x0A6F.</li>
|
||||
</ol>
|
||||
<p>In reverse mode, a similar computation is made except that the bits are
|
||||
returned in the reverse order. So, for example, if <tt>X</tt> has the value
|
||||
<tt>i16 0x0ACF (101011001111)</tt> and we apply
|
||||
<tt>part.select(i16 X, 8, 3)</tt> to it, we get back the value
|
||||
<tt>i16 0x0026 (000000100110)</tt>.</p>
|
||||
</div>
|
||||
|
||||
<div class="doc_subsubsection">
|
||||
|
|
Loading…
Reference in New Issue