summaryrefslogtreecommitdiff
path: root/src/amd/compiler/aco_opcodes.py
diff options
context:
space:
mode:
authorTimur Kristóf <timur.kristof@gmail.com>2022-12-13 09:39:30 +0100
committerMarge Bot <emma+marge@anholt.net>2022-12-14 13:54:04 +0000
commit640e8016510cc8872310a93f03f5527dd5468a39 (patch)
tree94d84bb0e340243edd9e779cd11fa639b3a592be /src/amd/compiler/aco_opcodes.py
parent614348f28be16fb8a3763bd68064652160975411 (diff)
downloadmesa-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.py11
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")