<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Implement a NIR -> vec4 pass"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89580#c17">Comment # 17</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Implement a NIR -> vec4 pass"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89580">bug 89580</a>
              from <span class="vcard"><a class="email" href="mailto:jason@jlekstrand.net" title="Jason Ekstrand <jason@jlekstrand.net>"> <span class="fn">Jason Ekstrand</span></a>
</span></b>
        <pre>(In reply to Iago Toral from <a href="show_bug.cgi?id=89580#c16">comment #16</a>)
<span class="quote">> Hi Jason,

> I have tracked most of our current piglit failures (>800 test fails, a few
> crashes and a GPU hang) to this loop in get_mul_for_src
> (nir_opt_peephole_ffma.c) when trying to produce a multiply-add operation:

>     for (unsigned i = 0; i < 4; i++) {
>       if (!(alu->dest.write_mask & (1 << i)))
>          break;

>       swizzle[i] = swizzle[src->swizzle[i]];
>    }</span >

Right.. That one's tricky. We should be breaking based on what channels are
readread rather than written.  There are two options here: we can either use
the writemask or the number of channels used by the *add*.  Since this pass
always runs with the shader in SSA form, it doesn't matter which you use so
long as use use the information from the add.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>