<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div style="margin: 0;">it looks good for me, thanks.</div><div style="margin: 0;"><br></div><div style="margin: 0;">btw: ARM64 have new instruction CBZ / CBNZ.</div><p>At 2021-06-24 10:11:32, "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.EmailStyle19
{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">I added the following change in the attached patch.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">It has better performance with ldp as it allows to re-schedule the instructions in independent ways:<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">function x265_filterPixelToShort_64x\h\()_neon<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add x3, x3, x3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> sub x3, x3, #0x40<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ sub x1, x1, #0x20<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> movi v4.8h, #0xe0, lsl #8<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> mov x9, #\r<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.loop_filterP2S_64x\h:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> subs x9, x9, #1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.rept 2<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">- ld1 {v0.16b-v3.16b}, [x0], x1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ ldp q0, q1, [x0], #0x20<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> ushll v16.8h, v0.8b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> ushll2 v17.8h, v0.16b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> ushll v18.8h, v1.8b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> ushll2 v19.8h, v1.16b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">- ushll v20.8h, v2.8b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">- ushll2 v21.8h, v2.16b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">- ushll v22.8h, v3.8b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">- ushll2 v23.8h, v3.16b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v16.8h, v16.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v17.8h, v17.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v18.8h, v18.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v19.8h, v19.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ st1 {v16.16b-v19.16b}, [x2], #0x40<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">+ ldp q2, q3, [x0]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ add x0, x0, x1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ ushll v20.8h, v2.8b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ ushll2 v21.8h, v2.16b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ ushll v22.8h, v3.8b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">+ ushll2 v23.8h, v3.16b, #6<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v20.8h, v20.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v21.8h, v21.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v22.8h, v22.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> add v23.8h, v23.8h, v4.8h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">- st1 {v16.16b-v19.16b}, [x2], #0x40<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> st1 {v20.16b-v23.16b}, [x2], x3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.endr<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> bgt .loop_filterP2S_64x\h<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">Before:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x16] 1.46x 105.51 154.37<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x32] 1.47x 212.07 312.12<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x48] 1.46x 318.76 466.80<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x64] 1.47x 425.34 623.56<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">After:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x16] 1.47x 105.24 154.46<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x32] 1.50x 207.42 312.09<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x48] 1.49x 312.30 466.27<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">convert_p2s[64x64] 1.50x 415.77 623.56<o:p></o:p></span></p>
</div>
</blockquote></div>