<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 14, 2014 at 4:07 AM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote">On Thu, Aug 14, 2014 at 3:45 AM, Patrik Hägglund H <span dir="ltr"><<a href="mailto:patrik.h.hagglund@ericsson.com" target="_blank">patrik.h.hagglund@ericsson.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="overflow:hidden">Hi Chandler,<br>
<br>
Ping!<br></div></blockquote><div><br></div><div>Sorry, I got caught up in other bug chasing activities and forgot about this one. I'll try to get to it if you don't sooner....</div><div class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="overflow:hidden">
<br>
I don't know anything about how this code works. Anyhow, I took a quick look at this. It seems like the call to getTargetShuffleMask (in combineX86ShufflesRecursively) returns a Mask with 'undef' (-1) values. However, the code following the call seems to assume that no elements are 'undef'.<br>

</div></blockquote><div><br></div></div><div>That seems... very, very strange. If it isn't a bug in getTargetShuffleMask (How does it know they are *undef*???) then I think the code following it just needs to be taught to deal with undef masks.</div>
</div></blockquote></div><br>Oh, this isn't undef stuff at all.</div><div class="gmail_extra"><br></div><div class="gmail_extra">X86 target shuffles sometimes will force-zero a lane, and we decode that to a '-1' entry in the *target* shuffle mask. Not to be confused with a '-1' in the shuffle masks used everywhere else. =/</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Anyways, the subsequent code looks *completely and utterly wrong*, both in the face of this and other issues. I'll rewrite it shortly.</div></div>