From ef6034812162fc8b51bfd5e87387f405d1cc30cb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20Storsj=C3=B6?= Date: Thu, 13 Aug 2015 23:59:26 +0300 Subject: [PATCH] aarch64: Simplify the decimate_score functions After doing a left shift by the number of bits returned by clz, only bits set to zero can be shifted out, so if the register was nonzero to start with (which is checked), it can't become zero here. --- common/aarch64/quant-a.S | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/common/aarch64/quant-a.S b/common/aarch64/quant-a.S index 2e1558b3..443a91da 100644 --- a/common/aarch64/quant-a.S +++ b/common/aarch64/quant-a.S @@ -328,17 +328,13 @@ function x264_decimate_score\size\()_neon, export=1 lsr x6, x3, #2 lsl x1, x1, x3 ldrb w7, [x5, x6] - cbz x1, 2f lsl x1, x1, #4 add w0, w0, w7 cbnz x1, 1b ret -2: - add w0, w0, w7 -0: - ret 9: mov w0, #9 +0: ret endfunc .endm @@ -399,17 +395,13 @@ function x264_decimate_score64_neon, export=1 clz x3, x1 lsl x1, x1, x3 ldrb w7, [x5, x3] - cbz x1, 2f lsl x1, x1, #1 add w0, w0, w7 cbnz x1, 1b ret -2: - add w0, w0, w7 -0: - ret 9: mov w0, #9 +0: ret endfunc -- 2.50.1