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

Author: Rhys Perry <[email protected]>
Date:   Wed Jan  4 14:53:00 2023 +0000

aco: add more opcodes to can_use_DPP()

Signed-off-by: Rhys Perry <[email protected]>
Reviewed-by: Georg Lehmann <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20251>

---

 src/amd/compiler/aco_ir.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/amd/compiler/aco_ir.cpp b/src/amd/compiler/aco_ir.cpp
index 1dc0d5d9e1c..44a975b6f4e 100644
--- a/src/amd/compiler/aco_ir.cpp
+++ b/src/amd/compiler/aco_ir.cpp
@@ -343,7 +343,7 @@ can_use_DPP(const aco_ptr<Instruction>& instr, bool pre_ra, 
bool dpp8)
    if (instr->operands.size() && instr->operands[0].isLiteral())
       return false;
 
-   if (instr->isSDWA())
+   if (instr->isSDWA() || instr->isVOP3P())
       return false;
 
    if (!pre_ra && (instr->isVOPC() || instr->definitions.size() > 1) &&
@@ -368,6 +368,8 @@ can_use_DPP(const aco_ptr<Instruction>& instr, bool pre_ra, 
bool dpp8)
    /* there are more cases but those all take 64-bit inputs */
    return instr->opcode != aco_opcode::v_madmk_f32 && instr->opcode != 
aco_opcode::v_madak_f32 &&
           instr->opcode != aco_opcode::v_madmk_f16 && instr->opcode != 
aco_opcode::v_madak_f16 &&
+          instr->opcode != aco_opcode::v_fmamk_f32 && instr->opcode != 
aco_opcode::v_fmaak_f32 &&
+          instr->opcode != aco_opcode::v_fmamk_f16 && instr->opcode != 
aco_opcode::v_fmaak_f16 &&
           instr->opcode != aco_opcode::v_readfirstlane_b32 &&
           instr->opcode != aco_opcode::v_cvt_f64_i32 &&
           instr->opcode != aco_opcode::v_cvt_f64_f32 && instr->opcode != 
aco_opcode::v_cvt_f64_u32;

Reply via email to