<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On May 27, 2011, at 10:49 AM, David Dunkle wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Thanks, that helps a lot. <br><br><blockquote type="cite">All chips (to date) with NEON have VFP3, so it's safe to assume that a<br></blockquote>-mfpu=neon will have VFP3, so all the decisions <br><blockquote type="cite">about code generated for VFP3 can safely be assumed by targets with<br></blockquote>NEON.<br><br>Just to confirm my understanding, can I correctly say in general that<br>the llc code generator might blur distinctions between NEON and VFP3<br>when it can do so safely?<br></div></blockquote><div><br></div><div>Not exactly. The distinction is clear, it's just not expressed as an either/or question. Specifically, the code generator considers NEON to be a proper superset of VFP3. So if it has only VFP3, that's all it will use. If it has NEON, it assumes it also has VFP3 and can use either. There's not, currently, a way to say "use only NEON instructions; don't generate any VFP3."</div><div><br></div><div>-Jim</div><blockquote type="cite"><div><font class="Apple-style-span" color="#000000"><br></font>-----Original Message-----<br>From: <a href="mailto:rengolin@gmail.com">rengolin@gmail.com</a> [mailto:rengolin@gmail.com] On Behalf Of Renato<br>Golin<br>Sent: Friday, May 27, 2011 2:38 AM<br>To: David Dunkle<br>Cc: <a href="mailto:llvmdev@cs.uiuc.edu">llvmdev@cs.uiuc.edu</a><br>Subject: Re: [LLVMdev] Question about ARM/vfp/NEON code generation<br><br>On 27 May 2011 02:04, David Dunkle <<a href="mailto:ddunkle@arxan.com">ddunkle@arxan.com</a>> wrote:<br><blockquote type="cite">In all cases, I get code that looks pretty very the same; its like <br></blockquote><blockquote type="cite">what is below. However, I am expecting to see instruction level <br></blockquote><blockquote type="cite">differences between the vfp3 and neon versions. When I do the same <br></blockquote><blockquote type="cite">with gcc 4.2 I do see differences in the generated code.<br></blockquote><br>Hi David,<br><br>You could see different instructions (as gcc does, you say), but it's<br>not necessary.<br><br>Your example has only floating point arithmetic, which both VFP3 and<br>NEON can do, so the final assembly will be similar. If you start using<br>integer arithmetic, than you can see vector instructions for NEON (if<br>it's vectorized) and not for VFP3.<br><br>All chips (to date) with NEON have VFP3, so it's safe to assume that a<br>-mfpu=neon will have VFP3, so all the decisions about code generated for<br>VFP3 can safely be assumed by targets with NEON.<br><br>Hope that answers your questions.<br><br>cheers,<br>--renato<br><br>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></div></blockquote></div><br></body></html>