aco: Add note about v_alignbyte in the ISA README.

We tried to use this instruction for a more optimal sequence,
but it turned out that it doesn't exactly work as it was
supposed to. This note is to help others who want to use it.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072>
This commit is contained in:
Timur Kristóf 2021-05-28 21:52:31 +02:00 committed by Marge Bot
parent fe625241f7
commit 228169c87c
1 changed files with 12 additions and 0 deletions

View File

@ -44,6 +44,18 @@ is written in the GCN3 reference guide:
D.u = CountOneBits(S0.u) + S1.u.
```
## `v_alignbyte_b32`
All versions of the ISA document are vague about it, but after some trial and
error we discovered that only 2 bits of the 3rd operand are used.
Therefore, this instruction can't shift more than 24 bits.
The correct description of `v_alignbyte_b32` is probably the following:
```
D.u = ({S0, S1} >> (8 * S2.u[1:0])) & 0xffffffff
```
## SMEM stores
The Vega ISA references doesn't say this (or doesn't make it clear), but