<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 12, 2014 at 3:22 PM, Simon Pilgrim <span dir="ltr"><<a href="mailto:llvm-dev@redking.me.uk" target="_blank">llvm-dev@redking.me.uk</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":3b0" class="a3s" style="overflow:hidden">Chandler - if you have no complaints I’d like to commit the additional X86vzmovl folded tests right away as it requires no alterations to codegen - its just adding missing tests.<br></div></blockquote><div><br></div><div>Of course. =] Such things fall under the "obvious" bucket for me, so feel free to just commit them.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":3b0" class="a3s" style="overflow:hidden">
<br>
For replacing the MOVQ+PSHUFD with an <span class="il">AND</span> with constant mask  - is there a decent way of doing this in the X86InstrSSE.td patterns? I can’t fathom how I’d declare the constant vector, nor how I’d make it fold or pre-load the constant.</div></blockquote><div><br></div><div>I don't think you need to think about folding, or hoisting out of a loop. Subsequent MI level stuff should handle that. You can maybe look at V_SETALLONES for inspiration on how to conjure such a vector constant? Sadly, I'm not a tablegen expert.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":3b0" class="a3s" style="overflow:hidden"> I can add it to lowerVectorShuffleAsElementInsertion easily enough but its kind of missing the point.<br></div></blockquote></div><br>Yea, but the point of it is to handle the cases that we don't have good tablegen techniques for, so we may have to explicitly manage more of this.... But I'm hopeful this can be matched effectively in tablegen.</div></div>