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);                                                          \ |     vst1q_u8(dst, r);                                                          \ | ||||||
|   } while (0) |   } 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, | static void Intra4Preds_NEON(uint8_t* WEBP_RESTRICT dst, | ||||||
|                              const uint8_t* WEBP_RESTRICT top) { |                              const uint8_t* WEBP_RESTRICT top) { | ||||||
|   // 0   1   2   3   4   5   6   7   8   9  10  11  12  13 |   // 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 |     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_avgs1 = Vld1qU8x4(kLookupTbl1); | ||||||
|   const uint8x16x4_t lookup_avgs2 = vld1q_u8_x4(kLookupTbl2); |   const uint8x16x4_t lookup_avgs2 = Vld1qU8x4(kLookupTbl2); | ||||||
|   const uint8x16x4_t lookup_avgs3 = vld1q_u8_x4(kLookupTbl3); |   const uint8x16x4_t lookup_avgs3 = Vld1qU8x4(kLookupTbl3); | ||||||
|  |  | ||||||
|   const uint8x16_t preload = vld1q_u8(top - 5); |   const uint8x16_t preload = vld1q_u8(top - 5); | ||||||
|   uint8x16x2_t qcombined; |   uint8x16x2_t qcombined; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user