aco: fix applying input modifiers to DPP8
authorGeorg Lehmann <dadschoorse@gmail.com>
Sun, 7 Jan 2024 10:22:19 +0000 (11:22 +0100)
committerEric Engestrom <eric@engestrom.ch>
Wed, 10 Jan 2024 09:27:11 +0000 (09:27 +0000)
Cc: mesa-stable
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26919>
(cherry picked from commit a90d154f62d949e1d2315d7d09975fb1fcbce489)

.pick_status.json
src/amd/compiler/aco_optimizer.cpp

index 8f04f15..064a9c8 100644 (file)
         "description": "aco: fix applying input modifiers to DPP8",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null,
         "notes": null
index 9fdbffc..fa9c34a 100644 (file)
@@ -1440,7 +1440,7 @@ label_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
             instr->operands[i].setTemp(info.temp);
          } else if (info.is_neg() && can_use_mod && mod_bitsize_compat &&
                     can_eliminate_fcanonicalize(ctx, instr, info.temp, i)) {
-            if (!instr->isDPP() && !instr->isSDWA())
+            if (!instr->isDPP16() && can_use_VOP3(ctx, instr))
                instr->format = asVOP3(instr->format);
             instr->operands[i].setTemp(info.temp);
             if (!instr->valu().abs[i])
@@ -1448,7 +1448,7 @@ label_instruction(opt_ctx& ctx, aco_ptr<Instruction>& instr)
          }
          if (info.is_abs() && can_use_mod && mod_bitsize_compat &&
              can_eliminate_fcanonicalize(ctx, instr, info.temp, i)) {
-            if (!instr->isDPP() && !instr->isSDWA())
+            if (!instr->isDPP16() && can_use_VOP3(ctx, instr))
                instr->format = asVOP3(instr->format);
             instr->operands[i] = Operand(info.temp);
             instr->valu().abs[i] = true;