Thanks Eli.<br><br>In the same way, FP_EXTEND can be marked as 'expand' for v2f64, and added to the cases in LegalizeVectorOps.<br>I can submit this separately.<br><br>Pete<br><br><div class="gmail_quote">On Thu, Nov 15, 2012 at 12:01 AM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com" target="_blank">eli.friedman@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="HOEnZb"><div class="h5">On Wed, Nov 14, 2012 at 11:21 PM, Pete Couperus <<a href="mailto:pjcoup@gmail.com">pjcoup@gmail.com</a>> wrote:<br>

> Hi Eli,<br>
><br>
><br>
> On Wed, Nov 14, 2012 at 10:13 PM, Eli Friedman <<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>><br>
> wrote:<br>
>><br>
>> On Wed, Nov 14, 2012 at 8:22 PM, Pete Couperus <<a href="mailto:pjcoup@gmail.com">pjcoup@gmail.com</a>> wrote:<br>
>> > Hi Eli,<br>
>> ><br>
>> ><br>
>> > On Wed, Nov 14, 2012 at 5:58 PM, Eli Friedman <<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>><br>
>> > wrote:<br>
>> >><br>
>> >> On Tue, Nov 13, 2012 at 11:24 PM, Pete Couperus <<a href="mailto:pjcoup@gmail.com">pjcoup@gmail.com</a>><br>
>> >> wrote:<br>
>> >> > Hello,<br>
>> >> ><br>
>> >> > Lowering "fptrunc <2 x double> %a to <2 x float>" is broken on ARM<br>
>> >> > with<br>
>> >> > NEON.<br>
>> >> > This patch custom lowers this conversion using two single element<br>
>> >> > vcvt's.<br>
>> >> > This fixes the following PRs.<br>
>> >> ><br>
>> >> > <a href="http://llvm.org/bugs/show_bug.cgi?id=12540" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=12540</a><br>
>> >> > <a href="http://llvm.org/bugs/show_bug.cgi?id=13964" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=13964</a><br>
>> >> ><br>
>> >> > Please review!<br>
>> >> > Thanks.<br>
>> >><br>
>> >> Does "setOperationAction(ISD::FP_ROUND, MVT::v2f32, Expand)" not do<br>
>> >> the right thing here?<br>
>> >><br>
>> >> -Eli<br>
>> ><br>
>> ><br>
>> > No, setting FP_ROUND to expand for v2f32 gets an assert in a different<br>
>> > place:<br>
>> ><br>
>> > llc:<br>
>> > /home/peter/llvm/llvm-svn/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:840:<br>
>> > void <anonymous<br>
>> > namespace>::SelectionDAGLegalize::LegalizeStoreOps(llvm::SDNode *):<br>
>> > Assertion `!StVT.isVector() && "Vector Stores are handled in<br>
>> > LegalizeVectorOps"' failed.<br>
>><br>
>> That assertion means that VectorLegalizer::LegalizeOp is missing a<br>
>> case for FP_ROUND.<br>
>><br>
>> -Eli<br>
><br>
><br>
> Ah, thanks.  So, the attached patch suffices?<br>
<br>
</div></div>Yes, LGTM.  (I'll commit it for you tomorrow if nobody else gets to it first.)<br>
<span class="HOEnZb"><font color="#888888"><br>
-Eli<br>
</font></span></blockquote></div><br>