<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Nov 9, 2017 at 2:23 PM, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Nov 2, 2017 at 3:54 PM, Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> wrote:<br>
> Register strides higher than 4 are uncommon but they can happen. For<br>
> instance, if you have a 64-bit extract_u8 operation, we turn that into<br>
> UB -> UQ MOV with a source stride of 8. Our previous calculation would<br>
> try to generate a stride of <32;8,8>:ub which is invalid because the<br>
> maximum horizontal stride is 4. To solve this problem, we instead use a<br>
> stride of <8;1,0>. As noted in the comment, this does not work as a<br>
> destination but that's ok as very few things actually generate that<br>
> stride.<br>
<br>
</span>Please put the tests you fixed in the commit message. It's not okay to<br>
leave that out for all the reasons that I'm sure you know.<br></blockquote><div><br></div><div>I didn't because the test passes before and after the patch. I guess I could have included that information though.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Looks like this doesn't work on CHV, BXT, GLK :(<br>
<br>
KHR-GL46.shader_ballot_tests.<wbr>ShaderBallotBitmasks now fails on CHV,<br>
BXT, GLK with:<br>
<br>
mov(8) g21<1>UQ g19<8,1,0>UB { align1 1Q };<br>
ERROR: Source and destination horizontal stride must equal and<br>
a multiple of a qword when the execution type is 64-bit<br>
ERROR: Vstride must be Width * Hstride when the execution type is 64-bit<br>
<br>
Modulo the typo in the first error, I think both of these are correct.<br>
I don't think we can extract_u8 to a 64-bit type on Atom :(<br></blockquote><div><br></div><div>That's unfortunate... Quickly racking my brain, I don't see a slick way to implement that opcode. How would you feel about some late opt_algebraic lowering?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This is filed as <a href="https://bugs.freedesktop.org/show_bug.cgi?id=103628" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/<wbr>show_bug.cgi?id=103628</a><br>
</blockquote></div><br></div></div>