<div dir="ltr">Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Aug 27, 2018 at 3:55 PM Ian Romanick <<a href="mailto:idr@freedesktop.org">idr@freedesktop.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com" target="_blank">ian.d.romanick@intel.com</a>><br>
<br>
v2: Refactor selection of atomic opcode to a separate function.<br>
Suggested by Jason.<br>
<br>
No changes on any other Intel platforms.<br>
<br>
Skylake<br>
total instructions in shared programs: 14304261 -> 14304241 (<.01%)<br>
instructions in affected programs: 1625 -> 1605 (-1.23%)<br>
helped: 4<br>
HURT: 0<br>
helped stats (abs) min: 1 max: 8 x̄: 5.00 x̃: 5<br>
helped stats (rel) min: 1.01% max: 14.29% x̄: 5.86% x̃: 4.07%<br>
95% mean confidence interval for instructions value: -10.66 0.66<br>
95% mean confidence interval for instructions %-change: -15.91% 4.19%<br>
Inconclusive result (value mean confidence interval includes 0).<br>
<br>
total cycles in shared programs: 527531226 -> 527531194 (<.01%)<br>
cycles in affected programs: 92204 -> 92172 (-0.03%)<br>
helped: 2<br>
HURT: 0<br>
<br>
Haswell and Broadwell had similar results. (Broadwell shown)<br>
total instructions in shared programs: 14615730 -> 14615710 (<.01%)<br>
instructions in affected programs: 1838 -> 1818 (-1.09%)<br>
helped: 4<br>
HURT: 0<br>
helped stats (abs) min: 1 max: 8 x̄: 5.00 x̃: 5<br>
helped stats (rel) min: 0.89% max: 13.04% x̄: 5.37% x̃: 3.78%<br>
95% mean confidence interval for instructions value: -10.66 0.66<br>
95% mean confidence interval for instructions %-change: -14.59% 3.85%<br>
Inconclusive result (value mean confidence interval includes 0).<br>
<br>
Signed-off-by: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com" target="_blank">ian.d.romanick@intel.com</a>><br>
Reviewed-by: Caio Marcelo de Oliveira Filho <<a href="mailto:caio.oliveira@intel.com" target="_blank">caio.oliveira@intel.com</a>><br>
---<br>
 src/intel/compiler/brw_fs_nir.cpp | 12 +++++++++---<br>
 1 file changed, 9 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp<br>
index 467aee0393f..15f34326c58 100644<br>
--- a/src/intel/compiler/brw_fs_nir.cpp<br>
+++ b/src/intel/compiler/brw_fs_nir.cpp<br>
@@ -3899,10 +3899,16 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr<br>
                           var->data.image.write_only ? GL_NONE : format);<br>
       } else {<br>
          int op;<br>
+         unsigned num_srcs = info->num_srcs;<br>
<br>
          switch (instr->intrinsic) {<br>
          case nir_intrinsic_image_deref_atomic_add:<br>
-            op = BRW_AOP_ADD;<br>
+            assert(num_srcs == 4);<br>
+<br>
+            op = get_op_for_atomic_add(instr, 3);<br>
+<br>
+            if (op != BRW_AOP_ADD)<br>
+               num_srcs = 3;<br>
             break;<br>
          case nir_intrinsic_image_deref_atomic_min:<br>
             op = (get_image_base_type(type) == BRW_REGISTER_TYPE_D ?<br>
@@ -3931,10 +3937,10 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr<br>
             unreachable("Not reachable.");<br>
          }<br>
<br>
-         const fs_reg src0 = (info->num_srcs >= 4 ?<br>
+         const fs_reg src0 = (num_srcs >= 4 ?<br>
                               retype(get_nir_src(instr->src[3]), base_type) :<br>
                               fs_reg());<br>
-         const fs_reg src1 = (info->num_srcs >= 5 ?<br>
+         const fs_reg src1 = (num_srcs >= 5 ?<br>
                               retype(get_nir_src(instr->src[4]), base_type) :<br>
                               fs_reg());<br>
<br>
-- <br>
2.14.4<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div>