Re: use ARM intrinsics in pg_lfind32() where available
От | John Naylor |
---|---|
Тема | Re: use ARM intrinsics in pg_lfind32() where available |
Дата | |
Msg-id | CAFBsxsFLBzf=0g-E6doX1dkVN81YBGS+9ff-1=r-eMriN3HGxA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: use ARM intrinsics in pg_lfind32() where available (John Naylor <john.naylor@enterprisedb.com>) |
Ответы |
Re: use ARM intrinsics in pg_lfind32() where available
|
Список | pgsql-hackers |
On Mon, Aug 29, 2022 at 3:19 PM John Naylor <john.naylor@enterprisedb.com> wrote: > > It turns out MSVC animal drongo doesn't like this cast -- on x86 they > are the same underlying type. Will look into that as more results come > in. Here's the simplest fix I can think of: /* * Exactly like vector8_is_highbit_set except for the input type, so it still looks * at each _byte_ separately. * * XXX x86 uses the same underlying type for vectors with 8-bit, 16-bit, and 32-bit * integer elements, but Arm does not, hence the need for a separate function. * We could instead adopt the behavior of Arm's vmaxvq_u32(), i.e. check each * 32-bit element, but that would require an additional mask operation on x86. */ static inline bool vector32_is_highbit_set(const Vector32 v) { #if defined(USE_NEON) return vector8_is_highbit_set((Vector8) v); #else return vector8_is_highbit_set(v); #endif } -- John Naylor EDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: