<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Yes. I think we prefer to use the intrinsics shared with ARM backend as possible as we could, and this way we could minimize adding new intrinsics for AArch64. This is the solution we have been using previously.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">However, if you could add more profile constraint for the aarch64 version intrinsics, it would be helpful to verify the semantic correctness on LLVM IR. I think this would also be acceptable. Otherwise, we should just reuse the arm version.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Thanks,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">
-Jiangning</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/21 Ana Pazos <span dir="ltr"><<a href="mailto:apazos@codeaurora.org" target="_blank">apazos@codeaurora.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">The reason I added is because the new target aarch64 intrinsics support i8, i16, i32 and i64 while the original target arm intrinsic only supports i64.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">The definition of the intrinsics are generic right now, I can reuse the same target arm intrinsic if that is preferred. <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ana.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Jiangning Liu [mailto:<a href="mailto:liujiangning1@gmail.com" target="_blank">liujiangning1@gmail.com</a>] <br>
<b>Sent:</b> Wednesday, November 20, 2013 7:05 PM<br><b>To:</b> Ana Pazos<br><b>Cc:</b> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a>; <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a> for LLVM; Tim Northover; Tim Northover<br>
<b>Subject:</b> Re: [PATCH][AArch64] Implemented remaining Neon scalar by element intrinsics<u></u><u></u></span></p><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Hi Ana,<u></u><u></u></span></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div><div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">+// doubling multiply-add long (scalar, by element)</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">+defm : Neon_ScalarXIndexedElem_MLAL_Patterns<int_aarch64_neon_vqadds,</span><u></u><u></u></p></div><div><p class="MsoNormal">
<span style="font-family:"Arial","sans-serif"">+  int_arm_neon_vqdmull, SQDMLALshv_4H, v1i32, FPR32, FPR16, v1i16, v4i16,</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">+  i32, VPR64Lo, neon_uimm2_bare>;</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Here int_aarch64_neon_vqadds should be able to be replaced by int_arm_neon_vqadds, and I don't really see the semantic differences between them.<u></u><u></u></span></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Therefore the definition of int_aarch64_neon_vqadds and all others like this in IntrinsicsAArch64.td should be able to be removed completely.<u></u><u></u></span></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div><div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">// Scalar Saturating Add (Signed, Unsigned)</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">def int_aarch64_neon_vqadds : Neon_2Arg_Intrinsic;</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">def int_aarch64_neon_vqaddu : Neon_2Arg_Intrinsic;</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div></div><div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">// Scalar Saturating Sub (Signed, Unsigned)</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">def int_aarch64_neon_vqsubs : Neon_2Arg_Intrinsic;</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">def int_aarch64_neon_vqsubu : Neon_2Arg_Intrinsic;</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">All others LGTM.<u></u><u></u></span></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Thanks,<u></u><u></u></span></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">-Jiangning<u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p>
</div></div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p><div><p class="MsoNormal">2013/11/21 Ana Pazos <<a href="mailto:apazos@codeaurora.org" target="_blank">apazos@codeaurora.org</a>><u></u><u></u></p>
<div><div><p class="MsoNormal"><span style="color:#1f497d">Pinging...please let me know if ok to check this in.</span><u></u><u></u></p><p class="MsoNormal"><span style="color:#1f497d">Ana.</span><u></u><u></u></p><p class="MsoNormal">
<span style="color:#1f497d"> </span><u></u><u></u></p><div><div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> <a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a>] <b>On Behalf Of </b>Ana Pazos<br>
<b>Sent:</b> Tuesday, November 19, 2013 11:58 AM<br><b>To:</b> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a>; <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a>; <a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a><br>
<b>Subject:</b> [PATCH][AArch64] Implemented remaining Neon scalar by element intrinsics</span><u></u><u></u></p></div></div><div><div><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Hi Tim and reviewers,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">This patch implements the remaining Neon scalar by element intrinsics: vqdmull_lane, vqdmulh_lane, vqrdmulh_lane, vqdmlal_lane, vqdmlsl_lane.<u></u><u></u></p><p class="MsoNormal">
 <u></u><u></u></p><p class="MsoNormal">Please let me know when you are done reviewing so I can check them in.<u></u><u></u></p><p class="MsoNormal"><br>Thanks,<u></u><u></u></p><p class="MsoNormal">Ana.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p></div></div></div></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><u></u><u></u></p></div><p class="MsoNormal"><br><br clear="all"><u></u><u></u></p><div>
<p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">-- <u></u><u></u></p><div><p class="MsoNormal"><span style="font-family:"Courier New"">Thanks,</span><u></u><u></u></p><div><p class="MsoNormal">
<span style="font-family:"Courier New"">-Jiangning</span><u></u><u></u></p></div></div></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><font face="courier new, monospace">Thanks,</font><div>
<font face="courier new, monospace">-Jiangning</font></div></div>
</div>