Mesa (master): aco: move src1 to vgpr instead of using VOP3 for VOP2 instructions during isel

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Apr 20 15:37:26 UTC 2020


Module: Mesa
Branch: master
Commit: c3c1f4d6bcc210408f8b180727d269838b38193b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c3c1f4d6bcc210408f8b180727d269838b38193b

Author: Daniel Schürmann <daniel at schuermann.dev>
Date:   Mon Apr 20 13:02:26 2020 +0100

aco: move src1 to vgpr instead of using VOP3 for VOP2 instructions during isel

Is simpler and helps a couple of shaders.
Totals from affected shaders: (Vega)
Code Size: 16341296 -> 16335460 (-0.04 %) bytes

Reviewed-by: Rhys Perry <pendingchaos02 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4642>

---

 src/amd/compiler/aco_instruction_selection.cpp | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index 1043bb2d2c0..7a42bee0f70 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -561,16 +561,8 @@ void emit_vop2_instruction(isel_context *ctx, nir_alu_instr *instr, aco_opcode o
          Temp t = src0;
          src0 = src1;
          src1 = t;
-      } else if (src0.type() == RegType::vgpr &&
-                 op != aco_opcode::v_madmk_f32 &&
-                 op != aco_opcode::v_madak_f32 &&
-                 op != aco_opcode::v_madmk_f16 &&
-                 op != aco_opcode::v_madak_f16) {
-         /* If the instruction is not commutative, we emit a VOP3A instruction */
-         bld.vop2_e64(op, Definition(dst), src0, src1);
-         return;
       } else {
-         src1 = bld.copy(bld.def(RegType::vgpr, src1.size()), src1); //TODO: as_vgpr
+         src1 = as_vgpr(ctx, src1);
       }
    }
 



More information about the mesa-commit mailing list