| @@ -1910,6 +1910,12 @@ endfunc · 1909 unmodified lines |
| 1910 | 1910 | |
| 1911 | 1911 | #if HAVE_I8MM |
| 1912 | 1912 | ENABLE_I8MM |
| 1913 | + |
| 1914 | +function ff_vvc_put_epel_h4_8_neon_i8mm, export=1 |
| 1915 | + VVC_EPEL_H_HEADER |
| 1916 | + b 1f |
| 1917 | +endfunc |
| 1918 | + |
| 1913 | 1919 | function ff_hevc_put_hevc_epel_h4_8_neon_i8mm, export=1 |
| 1914 | 1920 | EPEL_H_HEADER |
| 1915 | 1921 | 1: ld1 {v4.8b}, [x1], x2 |
| @@ -1953,6 +1959,11 @@ function ff_hevc_put_hevc_epel_h6_8_neon_i8mm, export=1 · 37 unmodified lines |
| 1953 | 1959 | ret |
| 1954 | 1960 | endfunc |
| 1955 | 1961 | |
| 1962 | +function ff_vvc_put_epel_h8_8_neon_i8mm, export=1 |
| 1963 | + VVC_EPEL_H_HEADER |
| 1964 | + b 1f |
| 1965 | +endfunc |
| 1966 | + |
| 1956 | 1967 | function ff_hevc_put_hevc_epel_h8_8_neon_i8mm, export=1 |
| 1957 | 1968 | EPEL_H_HEADER |
| 1958 | 1969 | 1: ld1 {v4.16b}, [x1], x2 |
| @@ -2003,6 +2014,11 @@ function ff_hevc_put_hevc_epel_h12_8_neon_i8mm, export=1 · 44 unmodified lines |
| 2003 | 2014 | ret |
| 2004 | 2015 | endfunc |
| 2005 | 2016 | |
| 2017 | +function ff_vvc_put_epel_h16_8_neon_i8mm, export=1 |
| 2018 | + VVC_EPEL_H_HEADER |
| 2019 | + b 1f |
| 2020 | +endfunc |
| 2021 | + |
| 2006 | 2022 | function ff_hevc_put_hevc_epel_h16_8_neon_i8mm, export=1 |
| 2007 | 2023 | EPEL_H_HEADER |
| 2008 | 2024 | 1: ld1 {v0.16b, v1.16b}, [x1], x2 |
| @@ -2077,6 +2093,11 @@ function ff_hevc_put_hevc_epel_h24_8_neon_i8mm, export=1 · 68 unmodified lines |
| 2077 | 2093 | ret |
| 2078 | 2094 | endfunc |
| 2079 | 2095 | |
| 2096 | +function ff_vvc_put_epel_h32_8_neon_i8mm, export=1 |
| 2097 | + VVC_EPEL_H_HEADER |
| 2098 | + b 1f |
| 2099 | +endfunc |
| 2100 | + |
| 2080 | 2101 | function ff_hevc_put_hevc_epel_h32_8_neon_i8mm, export=1 |
| 2081 | 2102 | EPEL_H_HEADER |
| 2082 | 2103 | 1: ld1 {v0.16b, v1.16b, v2.16b}, [x1], x2 |
| @@ -2176,11 +2197,8 @@ function ff_hevc_put_hevc_epel_h48_8_neon_i8mm, export=1 · 93 unmodified lines |
| 2176 | 2197 | ret |
| 2177 | 2198 | endfunc |
| 2178 | 2199 | |
| 2179 | | −function ff_hevc_put_hevc_epel_h64_8_neon_i8mm, export=1 |
| 2180 | | − EPEL_H_HEADER |
| 2181 | | − sub x2, x2, #64 |
| 2182 | | −1: ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x1], #64 |
| 2183 | | − subs w3, w3, #1 // height |
| 2200 | +.macro put_epel_h64_8_neon_i8mm |
| 2201 | + ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x1], #64 |
| 2184 | 2202 | ext v4.16b, v0.16b, v1.16b, #1 |
| 2185 | 2203 | ext v5.16b, v0.16b, v1.16b, #2 |
| 2186 | 2204 | ext v6.16b, v0.16b, v1.16b, #3 |
| @@ -2243,7 +2261,37 @@ function ff_hevc_put_hevc_epel_h64_8_neon_i8mm, export=1 · 56 unmodified lines |
| 2243 | 2261 | xtn2 v22.8h, v26.4s |
| 2244 | 2262 | xtn v23.4h, v23.4s |
| 2245 | 2263 | xtn2 v23.8h, v27.4s |
| 2246 | | − st4 {v20.8h, v21.8h, v22.8h, v23.8h}, [x0], #64 |
| 2264 | + st4 {v20.8h, v21.8h, v22.8h, v23.8h}, [x0], x10 |
| 2265 | +.endm |
| 2266 | + |
| 2267 | +function ff_vvc_put_epel_h64_8_neon_i8mm, export=1 |
| 2268 | + VVC_EPEL_H_HEADER |
| 2269 | + mov x10, #(VVC_MAX_PB_SIZE * 2 - 64) |
| 2270 | + sub x2, x2, #64 |
| 2271 | + b 1f |
| 2272 | +endfunc |
| 2273 | + |
| 2274 | +function ff_hevc_put_hevc_epel_h64_8_neon_i8mm, export=1 |
| 2275 | + EPEL_H_HEADER |
| 2276 | + mov x10, #64 |
| 2277 | + sub x2, x2, #64 |
| 2278 | +1: |
| 2279 | + subs w3, w3, #1 // height |
| 2280 | + put_epel_h64_8_neon_i8mm |
| 2281 | + b.ne 1b |
| 2282 | + ret |
| 2283 | +endfunc |
| 2284 | + |
| 2285 | +function ff_vvc_put_epel_h128_8_neon_i8mm, export=1 |
| 2286 | + VVC_EPEL_H_HEADER |
| 2287 | + sub x11, x2, #128 |
| 2288 | + mov x10, #64 |
| 2289 | + mov x2, #0 |
| 2290 | +1: |
| 2291 | + put_epel_h64_8_neon_i8mm |
| 2292 | + subs w3, w3, #1 |
| 2293 | + put_epel_h64_8_neon_i8mm |
| 2294 | + add x1, x1, x11 |
| 2247 | 2295 | b.ne 1b |
| 2248 | 2296 | ret |
| 2249 | 2297 | endfunc |