uint32x4_t
uint32x4_t rk32;
uint32x4_t prkhi32 = vreinterpretq_u32_u8(prkhi);
uint32x4_t prk32 = vreinterpretq_u32_u8(prk);
uint32x4_t rk32;
const uint32x4_t carry = vsetq_lane_u32(0x87, vdupq_n_u32(1), 0);
uint32x4_t mask;
const uint32x4_t ctr32_inc = vsetq_lane_u32(1, vdupq_n_u32(0), 3);
uint32x4_t ctr;
const uint32x4_t ctr32_inc = vsetq_lane_u32(1, vdupq_n_u32(0), 3);
uint32x4_t ctr;
static __inline uint32x4_t
vaddq_u32(uint32x4_t __v0, uint32x4_t __v1)
static __inline uint32x4_t
return (uint32x4_t)(__v0 < __v1);
static __inline uint32x4_t
return (uint32x4_t) { __x, __x, __x, __x };
static __inline uint32x4_t
vextq_u32(uint32x4_t __lo, uint32x4_t __hi, uint8_t __i)
(uint32x4_t) { 4 - __i, 5 - __i, 6 - __i, 7 - __i });
(uint32x4_t) { __i + 0, __i + 1, __i + 2, __i + 3 });
(uint32x4_t)__builtin_neon_vextq_v((int8x16_t)(__lo), \
uint32x4_t __tlo = (__lo); \
uint32x4_t __thi = (__hi); \
uint32x4_t __lo_r = __builtin_shufflevector(__tlo, __tlo, 3,2,1,0); \
uint32x4_t __hi_r = __builtin_shufflevector(__thi, __thi, 3,2,1,0); \
uint32x4_t __r = __builtin_neon_vextq_v((int8x16_t)__lo_r, \
vgetq_lane_u32(uint32x4_t __v, uint8_t __i)
static __inline uint32x4_t
return (uint32x4_t)__builtin_aarch64_ld1v4si(__p);
return (uint32x4_t)__builtin_neon_vld1v4si(__p);
uint32x4_t __v = (uint32x4_t)__builtin_neon_vld1q_v(__p32, 50);
vreinterpretq_u16_u32(uint32x4_t __v)
static __inline uint32x4_t
return (uint32x4_t)__v;
static __inline uint32x4_t
return (uint32x4_t)__v;
static __inline uint32x4_t
return (uint32x4_t)__v;
vreinterpretq_u64_u32(uint32x4_t __v)
vreinterpretq_u8_u32(uint32x4_t __v)
static __inline uint32x4_t
vsetq_lane_u32(uint32_t __x, uint32x4_t __v, uint8_t __i)
(uint32x4_t)__builtin_neon_vsetq_lane_i32((__x), (int32x4_t)(__v), \
static __inline uint32x4_t
vshlq_n_u32(uint32x4_t __v, uint8_t __bits)
return (uint32x4_t)__builtin_aarch64_ashlv4si((int32x4_t)__v, __bits);
return (uint32x4_t)__builtin_neon_vshl_nv4si((int32x4_t)__v, __bits);
(uint32x4_t)__builtin_neon_vshlq_n_v((int32x4_t)(__v), (__bits), 50)
static __inline uint32x4_t
vshrq_n_u32(uint32x4_t __v, uint8_t __bits)
return (uint32x4_t)__builtin_aarch64_lshrv4si((int32x4_t)__v, __bits);
return (uint32x4_t)__builtin_neon_vshru_nv4si((int32x4_t)__v, __bits);
(uint32x4_t)__builtin_neon_vshrq_n_v((int32x4_t)(__v), (__bits), 50)
static __inline uint32x4_t
vsriq_n_u32(uint32x4_t __vins, uint32x4_t __vsh, uint8_t __bits)
return (uint32x4_t)__builtin_neon_vsri_nv4si((int32x4_t)__vins,
vst1q_u32(uint32_t *__p32, uint32x4_t __v)
static inline uint32x4_t
rol7(uint32x4_t x)
chacha_permute(uint32x4_t *p0, uint32x4_t *p1, uint32x4_t *p2, uint32x4_t *p3,
uint32x4_t r0, r1, r2, r3;
uint32x4_t c0, c1, c2, c3;
uint32x4_t in0, in1, in2, in3;
uint32x4_t r0, r1, r2, r3;
uint32x4_t r0, r1, r2, r3;
const uint32x4_t blkno_inc = /* (1,0,0,0) */
uint32x4_t in0, in1, in2, in3;
uint32x4_t r0, r1, r2, r3;
in3 = (uint32x4_t) VQ_N_U32(
const uint32x4_t blkno_inc = /* (1,0,0,0) */
uint32x4_t in0, in1, in2, in3;
uint32x4_t r0, r1, r2, r3;
in3 = (uint32x4_t) VQ_N_U32(
static inline uint32x4_t
rol16(uint32x4_t x)
static inline uint32x4_t
rol12(uint32x4_t x)
static inline uint32x4_t
rol8(uint32x4_t x)