aco: use integer access for neg_lo/neg_hi
authorGeorg Lehmann <dadschoorse@gmail.com>
Tue, 7 Mar 2023 13:07:23 +0000 (14:07 +0100)
committerMarge Bot <emma+marge@anholt.net>
Thu, 9 Mar 2023 14:15:13 +0000 (14:15 +0000)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21766>

src/amd/compiler/aco_instruction_selection.cpp
src/amd/compiler/aco_optimizer.cpp

index 1b6f877..e94303e 100644 (file)
@@ -1038,8 +1038,7 @@ emit_idot_instruction(isel_context* ctx, nir_alu_instr* instr, aco_opcode op, Te
    VALU_instruction& vop3p =
       bld.vop3p(op, Definition(dst), src[0], src[1], src[2], 0x0, 0x7)->valu();
    vop3p.clamp = clamp;
-   u_foreach_bit (i, neg_lo)
-      vop3p.neg_lo[i] = true;
+   vop3p.neg_lo = neg_lo;
 }
 
 void
index e5c5681..7e4a6e3 100644 (file)
@@ -3741,17 +3741,15 @@ propagate_swizzles(VALU_instruction* instr, uint8_t opsel_lo, uint8_t opsel_hi)
    assert((opsel_hi & 1) == opsel_hi);
    uint8_t tmp_lo = instr->opsel_lo;
    uint8_t tmp_hi = instr->opsel_hi;
-   bool neg_lo[3] = {instr->neg_lo[0], instr->neg_lo[1], instr->neg_lo[2]};
-   bool neg_hi[3] = {instr->neg_hi[0], instr->neg_hi[1], instr->neg_hi[2]};
+   uint8_t neg_lo = instr->neg_lo;
+   uint8_t neg_hi = instr->neg_hi;
    if (opsel_lo == 1) {
       instr->opsel_lo = tmp_hi;
-      for (unsigned i = 0; i < 3; i++)
-         instr->neg_lo[i] = neg_hi[i];
+      instr->neg_lo = neg_hi;
    }
    if (opsel_hi == 0) {
       instr->opsel_hi = tmp_lo;
-      for (unsigned i = 0; i < 3; i++)
-         instr->neg_hi[i] = neg_lo[i];
+      instr->neg_hi = neg_lo;
    }
 }