diff options
author | Timur Kristóf <timur.kristof@gmail.com> | 2022-12-13 09:39:30 +0100 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-12-14 13:54:04 +0000 |
commit | 640e8016510cc8872310a93f03f5527dd5468a39 (patch) | |
tree | 94d84bb0e340243edd9e779cd11fa639b3a592be /src/amd/compiler/aco_opcodes.py | |
parent | 614348f28be16fb8a3763bd68064652160975411 (diff) | |
download | mesa-640e8016510cc8872310a93f03f5527dd5468a39.tar.gz |
aco: Split opcodes for GFX6 and GFX10 emulated bpermute.
Different sequences are emitted for these, so it makes sense to
have different opcodes too.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20293>
Diffstat (limited to 'src/amd/compiler/aco_opcodes.py')
-rw-r--r-- | src/amd/compiler/aco_opcodes.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/amd/compiler/aco_opcodes.py b/src/amd/compiler/aco_opcodes.py index 2c11cf255b8..3e3e67ff846 100644 --- a/src/amd/compiler/aco_opcodes.py +++ b/src/amd/compiler/aco_opcodes.py @@ -315,8 +315,15 @@ opcode("p_demote_to_helper") opcode("p_is_helper") opcode("p_exit_early_if") -# simulates proper bpermute behavior when it's unsupported, eg. GFX10 wave64 -opcode("p_bpermute") +# simulates proper bpermute behavior on GFX6 +# definitions: result VGPR, temp EXEC, clobbered VCC +# operands: index, input data +opcode("p_bpermute_gfx6") + +# simulates proper bpermute behavior on GFX10 +# definitions: result VGPR, temp EXEC, clobbered SCC +# operands: index * 4, input data, same half (bool) +opcode("p_bpermute_gfx10w64") # creates a lane mask where only the first active lane is selected opcode("p_elect") |