Difference between revisions of "Instruction Set/mask"
Line 4: | Line 4: | ||
</div> | </div> | ||
− | + | Convert between bitmasks and bool vectors. | |
+ | |||
+ | The lowest <i>width</i> bits of a bitmask become the element bool values of a new vector, or the bool element values of a vector become the new bits in a bitmask, depending on whether the input operand is a scalar or a vector. | ||
+ | |||
---- | ---- | ||
<code style="font-size:130%"><b style="color:#050">mask</b>(<i><span style="color:#009">[[Immediates#bit|bit]]</span> <span title="bit number">bits0</span></i>, <i><span style="color:#009">[[Immediates#bit|bit]]</span> <span title="bit number">bits1</span></i>, <i><span style="color:#009">[[Immediates#width|width]]</span> <span title="data width and scalarity (exu)">w</span></i>) → [[Domains#op|op]] r<sub>0</sub></code> | <code style="font-size:130%"><b style="color:#050">mask</b>(<i><span style="color:#009">[[Immediates#bit|bit]]</span> <span title="bit number">bits0</span></i>, <i><span style="color:#009">[[Immediates#bit|bit]]</span> <span title="bit number">bits1</span></i>, <i><span style="color:#009">[[Immediates#width|width]]</span> <span title="data width and scalarity (exu)">w</span></i>) → [[Domains#op|op]] r<sub>0</sub></code> | ||
<div style="font-size:80%;line-height:90%;margin-bottom:2em">'''operands:''' [[Operands#likeIdentity|like Identity [xx:x]]] | <div style="font-size:80%;line-height:90%;margin-bottom:2em">'''operands:''' [[Operands#likeIdentity|like Identity [xx:x]]] | ||
</div> | </div> | ||
− | <br /> | + | |
+ | This doesn't work with vectors at all. It doesn't even have belt operands. It is rather a way to produce a class of often used constant values that usually would take a lot of space as a [[Instruction_Set/con|normal manifest constant]]. | ||
+ | |||
+ | The values produced by mask are bitmasks: A sequence of ones in an otherwise empty bitfield, or a sequence of zeros in an otherwise filled bitfield. | ||
+ | |||
+ | The two bit paramters are the start and stop bit indices, i.e. the greater value is the highest order bit that is part of the sequence, and the lower value is the highest order bit not part of the sequence anymore. When the greater value is first, it is a series of ones within zeros, when it is second, it is a series of zeros within ones.<br /> | ||
{| class="mw-collapsible mw-collapsed wikitable" data-expandtext="▸" data-collapsetext="▾" | {| class="mw-collapsible mw-collapsed wikitable" data-expandtext="▸" data-collapsetext="▾" |
Revision as of 18:52, 20 December 2014
Convert between bitmasks and bool vectors.
The lowest width bits of a bitmask become the element bool values of a new vector, or the bool element values of a vector become the new bits in a bitmask, depending on whether the input operand is a scalar or a vector.
mask(bit bits0, bit bits1, width w) → op r0
This doesn't work with vectors at all. It doesn't even have belt operands. It is rather a way to produce a class of often used constant values that usually would take a lot of space as a normal manifest constant.
The values produced by mask are bitmasks: A sequence of ones in an otherwise empty bitfield, or a sequence of zeros in an otherwise filled bitfield.
The two bit paramters are the start and stop bit indices, i.e. the greater value is the highest order bit that is part of the sequence, and the lower value is the highest order bit not part of the sequence anymore. When the greater value is first, it is a series of ones within zeros, when it is second, it is a series of zeros within ones.
Core | In Slots | Latencies |
---|---|---|
Tin | E0 | 1 |
Copper | E0 E1 | 1 |
Silver | E0 E1 E2 E3 | 1 |
Gold | E0 E1 E2 E3 E4 E5 E6 E7 | 1 |
Decimal8 | E0 E1 E2 E3 | 1 |
Decimal16 | E0 E1 E2 E3 | 1 |
Core | In Slots | Latencies |
---|---|---|
Tin | E0 | 1 |
Copper | E0 E1 | 1 |
Silver | E0 E1 E2 E3 | 1 |
Gold | E0 E1 E2 E3 E4 E5 E6 E7 | 1 |
Decimal8 | E0 E1 E2 E3 | 1 |
Decimal16 | E0 E1 E2 E3 | 1 |
Instruction Set, alphabetical, Instruction Set by Category, Instruction Set, sortable, filterable