When patterns are collapsed the ordering of predicate checks is maintained. Not sure whether that's a feature or not, but it is what's making AVX2 broadcast instructions for integer vectors preferred over the FP versions. Maybe some other cases too.<br>
<br><div class="gmail_quote">On Mon, Jan 9, 2012 at 9:36 AM, Jakob Stoklund Olesen <span dir="ltr"><<a href="mailto:stoklund@2pi.dk">stoklund@2pi.dk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On Jan 8, 2012, at 9:07 PM, Craig Topper wrote:<br>
<br>
> Author: ctopper<br>
> Date: Sun Jan  8 23:07:01 2012<br>
> New Revision: 147765<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=147765&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=147765&view=rev</a><br>
> Log:<br>
> Move SSE2 logical operations PAND/POR/PXOR/PANDN above SSE1 logical operations ANDPS/ORPS/XORPS/ANDNPS. This fixes a pattern ordering issue that meant that the SSE2 instructions could never be directly selected since the SSE1 patterns would always match first. This is largely moot with the ExeDepsFix pass, but I'm trying to audit for all such ordering issues.<br>

<br>
</div>Ordering?<br>
<br>
The order of patterns in .td files is not significant, AFAIK.<br>
<span class="HOEnZb"><font color="#888888"><br>
/jakob<br>
<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>~Craig<br>