1 // SPDX-License-Identifier: GPL-2.0-only 2 3 static inline uint64x2_t pmull64(uint64x2_t a, uint64x2_t b) 4 { 5 return vreinterpretq_u64_p128(vmull_p64(vgetq_lane_u64(a, 0), 6 vgetq_lane_u64(b, 0))); 7 } 8 9 static inline uint64x2_t pmull64_high(uint64x2_t a, uint64x2_t b) 10 { 11 poly64x2_t l = vreinterpretq_p64_u64(a); 12 poly64x2_t m = vreinterpretq_p64_u64(b); 13 14 return vreinterpretq_u64_p128(vmull_high_p64(l, m)); 15 } 16 17 static inline uint64x2_t pmull64_hi_lo(uint64x2_t a, uint64x2_t b) 18 { 19 return vreinterpretq_u64_p128(vmull_p64(vgetq_lane_u64(a, 1), 20 vgetq_lane_u64(b, 0))); 21 } 22