On 01/05, Samuel Iglesias Gonsálvez wrote:
From: Iago Toral Quiroga <ito...@igalia.com>

4-wide DF operations where NibCtrl applies require and execsize of 8
in IvyBridge/Valleyview.

Wow, the documentation is bad in this area. The QtrCtrl description in
IVB's Vol4 Part3 explicitly says "NibCtrl is only allowed for SIMD4
instructions with (DF) double precision source and/or destination." and
shows NibCtrl only being enabled with ExecSize=4. That's very unclear
and I hope that didn't trip you guys up.

---
src/mesa/drivers/dri/i965/brw_disasm.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_disasm.c 
b/src/mesa/drivers/dri/i965/brw_disasm.c
index 167067a..7c3791d 100644
--- a/src/mesa/drivers/dri/i965/brw_disasm.c
+++ b/src/mesa/drivers/dri/i965/brw_disasm.c
@@ -1209,6 +1209,13 @@ qtr_ctrl(FILE *file, const struct gen_device_info 
*devinfo, brw_inst *inst)
         string(file, " 4Q");
         break;
      }
+      if (devinfo->gen == 7 && !devinfo->is_haswell) {
+         int nib_ctl = brw_inst_nib_control(devinfo, inst);
+         if (nib_ctl == 0)
+            string(file, " 1N");
+         else
+            string(file, " 2N");
+      }

This looks like it will print 1N/2N in addition to the 1Q/2Q/3Q/4Q from
immediately before. I don't think that's the intention.

Perhaps we can do a slight refactor and change the structure to
        const unsigned nib_ctrl = devinfo->gen < 7 ? 0 :
                                  brw_inst_nib_control(devinfo, inst);
        if (nib_ctrl) {
                format(file, " %dN", qtr_ctl * 2 + nib_ctl + 1);
        } else if (exec_size == 8) {
                ...
        } else if (exec_size == 16) {
                ...
        }

this is just the disassembler, so we don't need to implement logic that
decides when NibCtrl is valid and when it's not -- just disassemble
what's there :)

(I renamed nib_ctl -> nib_ctrl in the above block intentionally to match
the field name).

You can preemptively put a

Reviewed-by: Matt Turner <matts...@gmail.com>

on such a patch.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to