<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="margin: 0;">Hi Sebastian,</div><div style="margin: 0;"><br></div><div style="margin: 0;">The code looks good.</div><div style="margin: 0;"><br></div><div style="margin: 0;">I guess you can't find so much performance improve because two things:</div><div style="margin: 0;">1. Replace 5 instructions by another 5 instrcuctions may get similar performance on OOO CPU, but different on In-Order CPU.</div><div style="margin: 0;"><div style="margin: 0;">2. There have a potential pipeline stall may affect performance.</div><div><br></div><div>Regards,</div><div>Min Chn</div><div><br></div></div><p>At 2021-07-20 12:45:03, "Pop, Sebastian" <spop@amazon.com> wrote:</p><blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">



<style><!--

_font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
_font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}

p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
_page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>


<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Thanks Min Chen for your reviews.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I tried your suggestion to remove one of the FP->GPR transfers.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">With the following patch I do not see any improvement for the 64x routines, and the number of instructions remains the same:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">--- a/source/common/aarch64/sad-a.S<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+++ b/source/common/aarch64/sad-a.S<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">@@ -137,14 +137,14 @@<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">     add             v16.8h, v16.8h, v17.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">     add             v17.8h, v18.8h, v19.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">     add             v16.8h, v16.8h, v17.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-    uaddlv          s0,  v16.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-    fmov            w0,  s0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+    uaddlp          v16.4s, v16.8h<o:p></o:p></span></p><p class="MsoNormal"><span style="font-size:11.0pt">use v16 immedidate follow by instruction ADD may make pipeline stall</span></p><p class="MsoNormal"><span style="font-size:11.0pt"><br></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">     add             v18.8h, v20.8h, v21.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">     add             v19.8h, v22.8h, v23.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">     add             v17.8h, v18.8h, v19.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-    uaddlv          s1,  v17.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-    fmov            w1,  s1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-    add             w0, w0, w1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+    uaddlp          v17.4s, v17.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+    add             v16.4s, v16.4s, v17.4s<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+    uaddlv          d0, v16.4s<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+    fmov            x0, d0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">     ret<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.endm<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Please see the amended patch with your recommended change.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Sebastian<o:p></o:p></span></p>
</div>


</blockquote></div>