Mesa (main): aco: Use movk for AddressHi bits in vertex prolog

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 3 10:38:55 UTC 2022


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

Author: Joshua Ashton <joshua at froggi.es>
Date:   Wed Mar 16 18:07:04 2022 +0000

aco: Use movk for AddressHi bits in vertex prolog

Eliminates a useless extra dword by transforming
        s_mov_b32 s47, 0xffff8000                                   ; beaf03ff ffff8000
to
        s_movk_i32 s47, 0x8000                                      ; b02f8000

which does the same thing.

Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15415>

---

 src/amd/compiler/aco_instruction_selection.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index 48458e10949..7a91d9e0f1e 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -11855,8 +11855,13 @@ select_vs_prolog(Program* program, const struct radv_vs_prolog_key* key, ac_shad
 
    bld.sop1(aco_opcode::s_mov_b32, Definition(vertex_buffers, s1),
             get_arg_fixed(args, args->ac.vertex_buffers));
-   bld.sop1(aco_opcode::s_mov_b32, Definition(vertex_buffers.advance(4), s1),
-            Operand::c32((unsigned)options->address32_hi));
+   if (options->address32_hi >= 0xffff8000 || options->address32_hi <= 0x7fff) {
+      bld.sopk(aco_opcode::s_movk_i32, Definition(vertex_buffers.advance(4), s1),
+               options->address32_hi & 0xFFFF);
+   } else {
+      bld.sop1(aco_opcode::s_mov_b32, Definition(vertex_buffers.advance(4), s1),
+               Operand::c32((unsigned)options->address32_hi));
+   }
 
    /* calculate vgpr requirements */
    unsigned num_vgprs = attributes_start.reg() - 256;



More information about the mesa-commit mailing list