<div dir="ltr">Note that armv8a modifies the A32 and T32 instruction sets, and is therefore an important -march option for 32 bit code. Therefore armv8a can not be used to imply aarch64.<div><br></div><div>For example:</div><div><br></div><div>- IT predication instruction with more than a single controlled 16 bit instruction, or an instruction that modifies PC is deprecated. All old uses of IT work by default, but a control bit enables the OS to cause a trap on use of a deprecated use.</div><div><br></div><div>- new A32 and T32 Load Acquire/Store Release instructions</div><div><br></div><div>- new A32 and T32 scalar FP instructions including conditional select, min, max, new rounding modes for FP to int conversion, conversion between half precision and double precision</div><div><br></div><div>- new A32 and T32 vector forms of the above FP operations</div><div><br></div><div>- new A32 and T32 cryptographic instructions</div><div><br></div><div>- changes to barrier instructions</div><div><br></div><div>Users can reasonably expect -march=armv8a for 32 bit code to potentially generate the new FP instructions and restrict the use of the IT instruction.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 5, 2016 at 1:11 PM, Jojo Ma via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br><span>Hi everyone,</span><span><br><br></span><span>I'm a member engineer of linaro's llvm team,coming from Spreadtrum.</span><span><span>I am a new person on LLVM.</span>Now I'm writing a Target Parser for AArch64,so options parsing of AArch64 about cpu & arch & fpu can be s</span><span><span>ummary to one place.<br><br></span></span><span><span>In
 the TargetParser,we assume "aarch64" and "arm64" are synonyms of 
armv8a(as they are only for armv8a,people usually do this). So after 
using AArch64TargetParser in options parsing in Clang,using 
"-march=aarch64" and "-march=arm64" are both valid.<br><br></span></span><span><span>I saw Kevin </span></span><span> has a different view on this in his submission:r213353.<br><br></span></div><span style="color:rgb(56,118,29)"><i><span>+// RUN: %clang -target aarch64 -march=arm64 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-ARCH-NOT-ACCEPT %s</span><br><span>+// RUN: %clang -target aarch64 -march=aarch64 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-ARCH-NOT-ACCEPT %s</span><br><span>+// CHECK-ARCH-NOT-ACCEPT: error: the clang compiler does not support</span></i></span><br><div><div style="margin-left:40px"><span></span></div><span><br>So I failed on the </span><span>regression testing.</span><span>So I think we should reach a consensus on this issue.</span><span><br>Would you mind letting me know what you think of this issuse?<br><br></span><span>Thank you very much!</span><span>Looking forward to your reply!<br></span><span>I enclose the </span><span><span>attachments</span> for your reference.<br><br></span><span>Best Regards,<br></span><span>Jojo.ma</span></div></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>