<div dir="ltr"><div><div><div>Hi Tim -<br><br></div>Thanks for the answer!<br><br></div>We have this sequence:<br>        0x7f90c103d130: v2i64,ch = CopyFromReg 0x7f90c0c16e20, 0x7f90c103d020 [ORD=1] [ID=-3]<br>        0x7f90c103d350: i64 = Constant<1> [ID=-3]<br>     0x7f90c103d460: i64 = extract_vector_elt 0x7f90c103d130, 0x7f90c103d350 [ORD=2] [ID=-3]<br>    0x7f90c103fa00: v1i64 = BUILD_VECTOR 0x7f90c103d460 [ORD=3] [ID=-3]<br><br></div><div>That currently gets transformed to:<br>        0x7f90c103d130: v2i64,ch = CopyFromReg 0x7f90c0c16e20, 0x7f90c103d020 [ORD=1] [ID=4]<br>        0x7f90c103d350: i64 = Constant<1> [ID=2]<br>      0x7f90c103d460: i64 = extract_vector_elt 0x7f90c103d130, 0x7f90c103d350 [ORD=2] [ID=5]<br>    0x7f90c103dce0: v1i64 = scalar_to_vector 0x7f90c103d460 [ORD=3]<br><br></div>My patch is looking for that ( BUILD_VECTOR ( extract_vector_elt (...) ) pattern and changing it to:<br>       0x7fe67a039130: v2i64,ch = CopyFromReg 0x7fe679511410, 0x7fe67a039020 [ORD=1] [ID=4]<br>      0x7fe67a039350: i64 = Constant<1> [ID=2]<br>    0x7fe67a039570: v1i64 = extract_subvector 0x7fe67a039130, 0x7fe67a039350 [ORD=3] [ID=5]<br><br><div>...Now that I'm seeing this, I should probably just avoid firing on a build_vector of length 1. :)<br></div><div><br><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 10, 2014 at 9:09 PM, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Sanjay,<br>
<span class=""><br>
On 10 December 2014 at 19:47, Sanjay Patel <<a href="mailto:spatel@rotateright.com">spatel@rotateright.com</a>> wrote:<br>
> We're generating this:<br>
>    ext    v0.16b, v1.16b, v1.16b, #8<br>
><br>
> Rather than this:<br>
>    mov    d0, v1.d[1]<br>
><br>
> Are those logically equivalent? Is one form preferred over the other?<br>
<br>
</span>They're certainly semantically equivalent, and I'd expect the<br>
performance to be the same too. I wouldn't worry about a change like<br>
that if it was me. What's the DAG change that causes it?<br>
<br>
Cheers.<br>
<span class=""><font color="#888888"><br>
Tim.<br>
</font></span></blockquote></div><br></div></div></div></div></div></div>