<div dir="ltr">Also, as noticed by Amara:<div><br></div><div><div>; CHECK-LABEL: vector_ext_2i8_to_2i64:</div><div>; CHECK:       vld1.16 {[[REG:d[0-9]+]]</div><div>; CHECK:       vmov.i64 {{q[0-9]+}}, #0xff</div><div>; CHECK:       vrev16.8  [[REG]], [[REG]]</div>
<div>; CHECK:       vmovl.u8  {{q[0-9]+}}, [[REG]]</div></div><div><br></div><div>^ I think this is wrong. We shouldn't REV after a VLD1.</div><div><br></div><div><div>define void @vector_ext_2i32_to_2i64( <2 x i32>* %loadaddr, <2 x i64>* %storeaddr ) {</div>
<div>; CHECK-LABEL: vector_ext_2i32_to_2i64:</div><div>; CHECK:       vldr [[REG:d[0-9]+]]</div><div>; CHECK:       vrev64.32  [[REG]], [[REG]]</div><div>; CHECK:       vmovl.u32  {{q[0-9]+}}, [[REG]]</div></div><div><br>
</div><div>^ I think this is right. We should REV after a VLDR.</div><div><br></div><div>These two tests are inconsistent. This implies to me that you meant to fix the latter (which is an actual problem), and ended up "fixing" correct behaviour along the way...</div>
<div><br></div><div>... but I may be mistaken.</div><div><br></div><div>Cheers,</div><div><br></div><div>James</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 12 June 2014 11:01, James Molloy <span dir="ltr"><<a href="mailto:james.molloy@arm.com" target="_blank">james.molloy@arm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Christian,<br>
<br>
Could you please explain why this is necessary? I'm somewhat confused.<br>
<br>
We have canonicalised on using LD1 for vector loads, and our register content is in the form "as if" loaded by an LD1. I therefore do not understand why you need a VREV32 after the LD1. The lane order should be correct, and all you need to do is lengthen.<br>

<br>
In fact, we chose LD1 as our form **precisely because** we didn't want to change the vectorizer!<br>
<br>
Cheers,<br>
<br>
James<br>
<br>
<a href="http://reviews.llvm.org/D4043" target="_blank">http://reviews.llvm.org/D4043</a><br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>