<div dir="ltr">Hi Chad,<div><br></div><div>Just after having a very quick once-over:</div><div><br></div><div>+                                !strconcat(asmop, " $Rd, $Rn, $Rm"),<br></div><div><br></div><div>Is it not normal to separate the opcode and operands with '\t' instead of ' '?</div>
<div><br></div><div><div>-multiclass Neon_Scalar_D_size_patterns<SDPatternOperator opnode,</div><div>-                                       Instruction INSTD> {</div><div>+multiclass Neon_Scalar3Same_D_size_patterns<SDPatternOperator opnode,</div>
<div>+                                            Instruction INSTD> {</div><div>   def : Pat<(v1i64 (opnode (v1i64 FPR64:$Rn), (v1i64 FPR64:$Rm))),</div><div>             (INSTD FPR64:$Rn, FPR64:$Rm)>;        </div>
<div> }</div></div><div><br></div><div>Is there any particular reason you're adding a multiclass with only one (anonymous) element? Is it just so the later definitions can all consistently be "defm" or are you going to be adding to this class?</div>
<div><br></div><div><div>-defm : Neon_Scalar_D_size_patterns<int_arm_neon_vqadds, SQADDddd>;</div><div>-defm : Neon_Scalar_D_size_patterns<int_arm_neon_vqaddu, UQADDddd>;</div><div>-defm : Neon_Scalar_D_size_patterns<int_arm_neon_vqsubs, SQSUBddd>;</div>
<div>-defm : Neon_Scalar_D_size_patterns<int_arm_neon_vqsubu, UQSUBddd>;</div><div>+defm : Neon_Scalar3Same_D_size_patterns<int_arm_neon_vqadds, SQADDddd>;</div><div>+defm : Neon_Scalar3Same_D_size_patterns<int_arm_neon_vqaddu, UQADDddd>;</div>
<div>+defm : Neon_Scalar3Same_D_size_patterns<int_arm_neon_vqsubs, SQSUBddd>;</div><div>+defm : Neon_Scalar3Same_D_size_patterns<int_arm_neon_vqsubu, UQSUBddd>;</div></div><div><br></div><div>I'm sure this has been mentioned before, and you've obviously not changed this, but are we deliberately reusing all v7/AArch32 intrinsics ("int_arm_*") and only adding new ones under "int_aarch64_*"? or is this code an oversight?</div>
<div><br></div><div>Apologies for any stupidity, I haven't been following along much with the v8 NEON implementation.</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 3 October 2013 17:39,  <span dir="ltr"><<a href="mailto:mcrosier@codeaurora.org" target="_blank">mcrosier@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
All,<br>
The attached patches contain clang front-end and LLVM back-end code<br>
changes to add support for the following NEON scalar arithmetic<br>
instructions:<br>
<br>
-Signed saturating doubling multiply high half - SQDMULH<br>
-Signed saturating rounding doubling multiply high half - SQRDMULH<br>
-Floating-point multiply extended - FMULX<br>
-Floating-point reciprocal step - FRECPS<br>
-Floating-point reciprocal square root step - FRSQRTS<br>
<br>
Please have a look!<br>
<br>
 Chad<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>
<br></blockquote></div><br></div>