aco/ra: set opsel_hi to zero when converting to VOP2
authorGeorg Lehmann <dadschoorse@gmail.com>
Tue, 31 Jan 2023 17:04:29 +0000 (18:04 +0100)
committerMarge Bot <emma+marge@anholt.net>
Tue, 7 Mar 2023 11:53:23 +0000 (11:53 +0000)
Otherwise the new modifier validation will fail.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21023>

src/amd/compiler/aco_register_allocation.cpp

index 54d4174..5a7adb3 100644 (file)
@@ -2637,6 +2637,7 @@ optimize_encoding_vop2(Program* program, ra_ctx& ctx, RegisterFile& register_fil
    static_assert(sizeof(VOP2_instruction) <= sizeof(VOP3P_instruction),
                  "Invalid direct instruction cast.");
    instr->format = Format::VOP2;
+   instr->valu().opsel_hi = 0;
    switch (instr->opcode) {
    case aco_opcode::v_mad_f32: instr->opcode = aco_opcode::v_mac_f32; break;
    case aco_opcode::v_fma_f32: instr->opcode = aco_opcode::v_fmac_f32; break;