ref: 03d9f07671bcdab3f2c5358a573fcc32c621c197
parent: c228c51423b5e957678d00c205816bdeae027844
author: Martin Storsjö <martin@martin.st>
date: Tue Jul 8 06:52:48 EDT 2014
Fix WelsHadamardQuant2x2*_AArch64_neon In WelsHadamardQuant2x2SkipKernel_AArch64_neon, write the output of cmhi into v0 - this is the register that is assumed to hold the output. In WelsHadamardQuant2x2_AArch64_neon, subtract the count of zero elements from 4, not from 16. This makes the encoding unit tests pass again.
--- a/codec/encoder/core/arm64/reconstruct_aarch64_neon.S
+++ b/codec/encoder/core/arm64/reconstruct_aarch64_neon.S
@@ -646,7 +646,7 @@
HDM_QUANT_2x2_TOTAL_16BITS v1, v0, v2 // output v0
abs v1.4h, v0.4h
- cmhi v1.4h, v1.4h, v4.4h // abs(dct[i])>threshold;
+ cmhi v0.4h, v1.4h, v4.4h // abs(dct[i])>threshold;
mov w0, v0.s[0]
mov w1, v0.s[1]
orr w0, w0, w1
@@ -687,7 +687,7 @@
DC_ZERO_COUNT_IN_DUALWORD v1, h0, v3
mov x0, v0.d[0]
- mov x1, #16
+ mov x1, #4
subs x0, x1, x0
WELS_ASM_AARCH64_FUNC_END
@@ -944,4 +944,4 @@
st1 {v3.16b}, [x0], x1
.endr
WELS_ASM_AARCH64_FUNC_END
-#endif
\ No newline at end of file
+#endif