22 lines
575 B
C
22 lines
575 B
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
static inline uint64x2_t pmull64(uint64x2_t a, uint64x2_t b)
|
|
{
|
|
return vreinterpretq_u64_p128(vmull_p64(vgetq_lane_u64(a, 0),
|
|
vgetq_lane_u64(b, 0)));
|
|
}
|
|
|
|
static inline uint64x2_t pmull64_high(uint64x2_t a, uint64x2_t b)
|
|
{
|
|
poly64x2_t l = vreinterpretq_p64_u64(a);
|
|
poly64x2_t m = vreinterpretq_p64_u64(b);
|
|
|
|
return vreinterpretq_u64_p128(vmull_high_p64(l, m));
|
|
}
|
|
|
|
static inline uint64x2_t pmull64_hi_lo(uint64x2_t a, uint64x2_t b)
|
|
{
|
|
return vreinterpretq_u64_p128(vmull_p64(vgetq_lane_u64(a, 1),
|
|
vgetq_lane_u64(b, 0)));
|
|
}
|