aco: allow input modifiers on v_cndmask_b32
authorRhys Perry <pendingchaos02@gmail.com>
Tue, 10 Dec 2019 19:03:42 +0000 (19:03 +0000)
committerMarge Bot <eric+marge@anholt.net>
Tue, 14 Jan 2020 12:56:28 +0000 (12:56 +0000)
Totals from affected shaders:
SGPRS: 594099 -> 594019 (-0.01 %)
VGPRS: 441016 -> 441124 (0.02 %)
Spilled SGPRs: 101 -> 101 (0.00 %)
Spilled VGPRs: 18 -> 18 (0.00 %)
Code Size: 30266652 -> 30125256 (-0.47 %) bytes
Max Waves: 67044 -> 67057 (0.02 %)
Instructions: 5753097 -> 5726607 (-0.46 %)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2883>

src/amd/compiler/aco_opcodes.py

index c471b92740efedf483d77ce9648f99bc4eedec0c..17520b7209f7c141077f23f9b6cb799ecaea5a2b 100644 (file)
@@ -592,7 +592,6 @@ for (gfx6, gfx7, gfx8, gfx9, gfx10, name) in SMEM:
 # TODO: misses some GFX6_7 opcodes which were shifted to VOP3 in GFX8
 VOP2 = {
   # GFX6, GFX7, GFX8, GFX9, GFX10, name, input/output modifiers
-   (0x00, 0x00, 0x00, 0x00, 0x01, "v_cndmask_b32", False),
    (0x01, 0x01,   -1,   -1,   -1, "v_readlane_b32", False),
    (0x02, 0x02,   -1,   -1,   -1, "v_writelane_b32", False),
    (0x03, 0x03, 0x01, 0x01, 0x03, "v_add_f32", True),
@@ -667,6 +666,11 @@ VOP2 = {
 for (gfx6, gfx7, gfx8, gfx9, gfx10, name, modifiers) in VOP2:
    opcode(name, gfx7, gfx9, gfx10, Format.VOP2, modifiers, modifiers)
 
+if True:
+    # v_cndmask_b32 can use input modifiers but not output modifiers
+    (gfx6, gfx7, gfx8, gfx9, gfx10, name) = (0x00, 0x00, 0x00, 0x00, 0x01, "v_cndmask_b32")
+    opcode(name, gfx7, gfx9, gfx10, Format.VOP2, True, False)
+
 
 # VOP1 instructions: instructions with 1 input and 1 output
 VOP1 = {