mirror of
				https://github.com/webmproject/libwebp.git
				synced 2025-10-31 18:35:41 +01:00 
			
		
		
		
	enc_neon: fix build w/aarch64 gcc < 9.4.0
vld1q_u8_x4 was added for aarch64 in the gcc 9.4.0 release: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/ChangeLog;h=7558c0a369ea8c74a2b9369049a2d1cc187dc050;hb=13c83c4cc679ad5383ed57f359e53e8d518b7842#l2100 fixes: src/dsp/enc_neon.c: In function 'Intra4Preds_NEON': src/dsp/enc_neon.c:974:37: warning: implicit declaration of function 'vld1q_u8_x4'; did you mean 'vld1q_u8_x2'? [-Wimplicit-function-declaration] Bug: webp:398288323 Change-Id: Ic6e408065a375c945cc8691bd16a9f5d5642cfa2
This commit is contained in:
		| @@ -945,6 +945,18 @@ static int Quantize2Blocks_NEON(int16_t in[32], int16_t out[32], | ||||
|     vst1q_u8(dst, r);                                                          \ | ||||
|   } while (0) | ||||
|  | ||||
| static WEBP_INLINE uint8x16x4_t Vld1qU8x4(const uint8_t* ptr) { | ||||
| #if LOCAL_GCC_PREREQ(9, 4) | ||||
|   return vld1q_u8_x4(ptr); | ||||
| #else | ||||
|   uint8x16x4_t res; | ||||
|   INIT_VECTOR4(res, | ||||
|                vld1q_u8(ptr + 0 * 16), vld1q_u8(ptr + 1 * 16), | ||||
|                vld1q_u8(ptr + 2 * 16), vld1q_u8(ptr + 3 * 16)); | ||||
|   return res; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| static void Intra4Preds_NEON(uint8_t* WEBP_RESTRICT dst, | ||||
|                              const uint8_t* WEBP_RESTRICT top) { | ||||
|   // 0   1   2   3   4   5   6   7   8   9  10  11  12  13 | ||||
| @@ -971,9 +983,9 @@ static void Intra4Preds_NEON(uint8_t* WEBP_RESTRICT dst, | ||||
|     30, 30, 30, 30,  0,  0,  0,  0, 21, 22, 23, 24, 16, 16, 16, 16 | ||||
|   }; | ||||
|  | ||||
|   const uint8x16x4_t lookup_avgs1 = vld1q_u8_x4(kLookupTbl1); | ||||
|   const uint8x16x4_t lookup_avgs2 = vld1q_u8_x4(kLookupTbl2); | ||||
|   const uint8x16x4_t lookup_avgs3 = vld1q_u8_x4(kLookupTbl3); | ||||
|   const uint8x16x4_t lookup_avgs1 = Vld1qU8x4(kLookupTbl1); | ||||
|   const uint8x16x4_t lookup_avgs2 = Vld1qU8x4(kLookupTbl2); | ||||
|   const uint8x16x4_t lookup_avgs3 = Vld1qU8x4(kLookupTbl3); | ||||
|  | ||||
|   const uint8x16_t preload = vld1q_u8(top - 5); | ||||
|   uint8x16x2_t qcombined; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user