Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
acl-plugin: "show acl-plugin acl" ACE# is truncated to 4 digits in output
[vpp.git]
/
src
/
vppinfra
/
vector_neon.h
diff --git
a/src/vppinfra/vector_neon.h
b/src/vppinfra/vector_neon.h
index
adea39a
..
f6d953c
100644
(file)
--- a/
src/vppinfra/vector_neon.h
+++ b/
src/vppinfra/vector_neon.h
@@
-121,11
+121,7
@@
foreach_neon_vec128i foreach_neon_vec128u
static_always_inline u16x8
u16x8_byte_swap (u16x8 v)
{
static_always_inline u16x8
u16x8_byte_swap (u16x8 v)
{
- const u8 swap_pattern[] = {
- 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14,
- };
- u8x16 swap = vld1q_u8 (swap_pattern);
- return (u16x8) vqtbl1q_u8 ((u8x16) v, swap);
+ return (u16x8) vrev16q_u8 ((u8x16) v);
}
static_always_inline u8x16
}
static_always_inline u8x16
@@
-140,6
+136,18
@@
u32x4_hadd (u32x4 v1, u32x4 v2)
return (u32x4) vpaddq_u32 (v1, v2);
}
return (u32x4) vpaddq_u32 (v1, v2);
}
+static_always_inline u64x2
+u32x4_extend_to_u64x2 (u32x4 v)
+{
+ return vmovl_u32 (vget_low_u32 (v));
+}
+
+static_always_inline u64x2
+u32x4_extend_to_u64x2_high (u32x4 v)
+{
+ return vmovl_high_u32 (v);
+}
+
#define CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE
#define CLIB_VEC128_SPLAT_DEFINED
#endif /* included_vector_neon_h */
#define CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE
#define CLIB_VEC128_SPLAT_DEFINED
#endif /* included_vector_neon_h */