diff --git a/libavcodec/aarch64/vp9lpf_neon.S b/libavcodec/aarch64/vp9lpf_neon.S index e9c7d9edc8029d5be171bfaf81aa3a25814649fc..3b8e6ebc99bea5026efac89f859bc458a87573c5 100644 --- a/libavcodec/aarch64/vp9lpf_neon.S +++ b/libavcodec/aarch64/vp9lpf_neon.S @@ -292,7 +292,7 @@ .if \mix != 0 sxtl v1.8h, v1.8b .endif - cmhi v5\sz, v5\sz, v3\sz // hev + cmhs v5\sz, v3\sz, v5\sz // !hev .if \wd == 8 // If a 4/8 or 8/4 mix is used, clear the relevant half of v6 .if \mix != 0 @@ -306,11 +306,10 @@ .elseif \wd == 8 bic v4\sz, v4\sz, v6\sz // fm && !flat8in .endif - mvn v5\sz, v5\sz // !hev + and v5\sz, v5\sz, v4\sz // !hev && fm && !flat8in .if \wd == 16 and v7\sz, v7\sz, v6\sz // flat8out && flat8in && fm .endif - and v5\sz, v5\sz, v4\sz // !hev && fm && !flat8in mul_sz \tmp3\().8h, \tmp4\().8h, \tmp3\().8h, \tmp4\().8h, \tmp5\().8h, \tmp5\().8h, \sz // 3 * (q0 - p0) bic \tmp1\sz, \tmp1\sz, v5\sz // if (!hev) av_clip_int8 = 0 diff --git a/libavcodec/arm/vp9lpf_neon.S b/libavcodec/arm/vp9lpf_neon.S index fbf2901f75052d35e770d94a6e9fa765ebca12b3..c57c0e9c31e19f7f58315caacecf307769b4d70c 100644 --- a/libavcodec/arm/vp9lpf_neon.S +++ b/libavcodec/arm/vp9lpf_neon.S @@ -141,7 +141,7 @@ .if \wd == 8 vcle.u8 d6, d6, d0 @ flat8in .endif - vcgt.u8 d5, d5, d3 @ hev + vcle.u8 d5, d5, d3 @ !hev .if \wd == 8 vand d6, d6, d4 @ flat8in && fm .endif @@ -151,11 +151,10 @@ .elseif \wd == 8 vbic d4, d4, d6 @ fm && !flat8in .endif - vmvn d5, d5 @ !hev + vand d5, d5, d4 @ !hev && fm && !flat8in .if \wd == 16 vand d7, d7, d6 @ flat8out && flat8in && fm .endif - vand d5, d5, d4 @ !hev && fm && !flat8in vmul.s16 \tmpq2, \tmpq2, \tmpq3 @ 3 * (q0 - p0) vbic \tmp1, \tmp1, d5 @ if (!hev) av_clip_int8 = 0