]> git.sesse.net Git - ffmpeg/commitdiff
Merge commit '37394ef01b040605f8e1c98e73aa12b1c0bcba07'
authorJames Almer <jamrial@gmail.com>
Thu, 14 Mar 2019 19:20:05 +0000 (16:20 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 14 Mar 2019 19:20:05 +0000 (16:20 -0300)
* commit '37394ef01b040605f8e1c98e73aa12b1c0bcba07':
  aarch64: vp8: Optimize put_epel16_h6v6 with vp8_epel8_v6_y2

Merged-by: James Almer <jamrial@gmail.com>
1  2 
libavcodec/aarch64/vp8dsp_neon.S

index aefe8fdcde9af68a5e1abae1d4d853f14eb79af1,139b380fa48d55ff7f886b4a44196f258780184f..c9c5018c82417354b7dd9cf1c52a6eb617844374
@@@ -6,20 -6,20 +6,20 @@@
   * Copyright (c) 2018 Magnus Röös <mla2.roos@gmail.com>
   * Copyright (c) 2019 Martin Storsjo <martin@martin.st>
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
 - * Libav is distributed in the hope that it will be useful,
 + * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
 - * License along with Libav; if not, write to the Free Software
 + * License along with FFmpeg; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
   */
  
@@@ -769,23 -769,6 +769,6 @@@ endfun
          sqrshrun2       \d0\().16b, v22.8h, #7
  .endm
  
- .macro  vp8_epel8_v6    d0,  s0,  s1,  s2, s3, s4, s5
-         uxtl            \s2\().8h, \s2\().8b
-         uxtl            \s3\().8h, \s3\().8b
-         uxtl            \s1\().8h, \s1\().8b
-         uxtl            \s4\().8h, \s4\().8b
-         uxtl            \s0\().8h, \s0\().8b
-         uxtl            \s5\().8h, \s5\().8b
-         mul             \s2\().8h, \s2\().8h, v0.h[2]
-         mul             \s3\().8h, \s3\().8h, v0.h[3]
-         mls             \s2\().8h, \s1\().8h, v0.h[1]
-         mls             \s3\().8h, \s4\().8h, v0.h[4]
-         mla             \s2\().8h, \s0\().8h, v0.h[0]
-         mla             \s3\().8h, \s5\().8h, v0.h[5]
-         sqadd           \s3\().8h, \s2\().8h, \s3\().8h
-         sqrshrun        \d0\().8b, \s3\().8h, #7
- .endm
  .macro  vp8_epel8_v6_y2 d0, d1, s0, s1, s2, s3, s4, s5, s6
          uxtl            \s0\().8h, \s0\().8b
          uxtl            \s3\().8h, \s3\().8b
@@@ -942,15 -925,18 +925,18 @@@ function ff_put_vp8_epel16_h6v6_neon, e
  2:
          ld1             {v1.8b - v4.8b},    [x7], #32
          ld1             {v16.8b - v19.8b},  [x7], #32
-         ld1             {v20.8b - v23.8b},  [x7]
-         sub             x7,  x7,  #48
+         ld1             {v20.8b - v23.8b},  [x7], #32
+         ld1             {v24.8b - v25.8b},  [x7]
+         sub             x7,  x7,  #64
  
-         vp8_epel8_v6    v5, v1, v3, v16, v18, v20, v22
-         vp8_epel8_v6    v2, v2, v4, v17, v19, v21, v23
-         trn1            v2.2d, v5.2d, v2.2d
+         vp8_epel8_v6_y2 v1, v3, v1, v3, v16, v18, v20, v22, v24
+         vp8_epel8_v6_y2 v2, v4, v2, v4, v17, v19, v21, v23, v25
+         trn1            v1.2d, v1.2d, v2.2d
+         trn1            v3.2d, v3.2d, v4.2d
  
-         st1             {v2.16b}, [x0], x1
-         subs            x4, x4, #1
+         st1             {v1.16b}, [x0], x1
+         st1             {v3.16b}, [x0], x1
+         subs            x4, x4, #2
          b.ne            2b
  
          add             sp,  sp,  #336+16