#include <arm_neon.h>

Cryptography

AES, SHA-1, SHA-256, SHA-512, SHA-3 (eor3, rax1, xar, bcax), SM3 and SM4 instructions.

intrinsic family of arm_neon.h
40 functions · 5 macros

functionvaesdq_u8

__ai __attribute__((target("aes,neon")))
uint8x16_t vaesdq_u8(uint8x16_t __p0, uint8x16_t __p1)

functionvaeseq_u8

__ai __attribute__((target("aes,neon")))
uint8x16_t vaeseq_u8(uint8x16_t __p0, uint8x16_t __p1)

functionvaesimcq_u8

__ai __attribute__((target("aes,neon")))
uint8x16_t vaesimcq_u8(uint8x16_t __p0)

functionvaesmcq_u8

__ai __attribute__((target("aes,neon")))
uint8x16_t vaesmcq_u8(uint8x16_t __p0)

functionvsha1cq_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha1cq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2)

functionvsha1h_u32

__ai __attribute__((target("sha2,neon")))
uint32_t vsha1h_u32(uint32_t __p0)

functionvsha1mq_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha1mq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2)

functionvsha1pq_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha1pq_u32(uint32x4_t __p0, uint32_t __p1, uint32x4_t __p2)

functionvsha1su0q_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha1su0q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionvsha1su1q_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha1su1q_u32(uint32x4_t __p0, uint32x4_t __p1)

functionvsha256hq_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha256hq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionvsha256h2q_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha256h2q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionvsha256su0q_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha256su0q_u32(uint32x4_t __p0, uint32x4_t __p1)

functionvsha256su1q_u32

__ai __attribute__((target("sha2,neon")))
uint32x4_t vsha256su1q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionvbcaxq_u8

__ai __attribute__((target("sha3,neon")))
uint8x16_t vbcaxq_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2)

functionvbcaxq_u32

__ai __attribute__((target("sha3,neon")))
uint32x4_t vbcaxq_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionvbcaxq_u64

__ai __attribute__((target("sha3,neon")))
uint64x2_t vbcaxq_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2)

functionvbcaxq_u16

__ai __attribute__((target("sha3,neon")))
uint16x8_t vbcaxq_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2)

functionvbcaxq_s8

__ai __attribute__((target("sha3,neon")))
int8x16_t vbcaxq_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2)

functionvbcaxq_s32

__ai __attribute__((target("sha3,neon")))
int32x4_t vbcaxq_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2)

functionvbcaxq_s64

__ai __attribute__((target("sha3,neon")))
int64x2_t vbcaxq_s64(int64x2_t __p0, int64x2_t __p1, int64x2_t __p2)

functionvbcaxq_s16

__ai __attribute__((target("sha3,neon")))
int16x8_t vbcaxq_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2)

functionveor3q_u8

__ai __attribute__((target("sha3,neon")))
uint8x16_t veor3q_u8(uint8x16_t __p0, uint8x16_t __p1, uint8x16_t __p2)

functionveor3q_u32

__ai __attribute__((target("sha3,neon")))
uint32x4_t veor3q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionveor3q_u64

__ai __attribute__((target("sha3,neon")))
uint64x2_t veor3q_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2)

functionveor3q_u16

__ai __attribute__((target("sha3,neon")))
uint16x8_t veor3q_u16(uint16x8_t __p0, uint16x8_t __p1, uint16x8_t __p2)

functionveor3q_s8

__ai __attribute__((target("sha3,neon")))
int8x16_t veor3q_s8(int8x16_t __p0, int8x16_t __p1, int8x16_t __p2)

functionveor3q_s32

__ai __attribute__((target("sha3,neon")))
int32x4_t veor3q_s32(int32x4_t __p0, int32x4_t __p1, int32x4_t __p2)

functionveor3q_s64

__ai __attribute__((target("sha3,neon")))
int64x2_t veor3q_s64(int64x2_t __p0, int64x2_t __p1, int64x2_t __p2)

functionveor3q_s16

__ai __attribute__((target("sha3,neon")))
int16x8_t veor3q_s16(int16x8_t __p0, int16x8_t __p1, int16x8_t __p2)

functionvrax1q_u64

__ai __attribute__((target("sha3,neon")))
uint64x2_t vrax1q_u64(uint64x2_t __p0, uint64x2_t __p1)

functionvsha512hq_u64

__ai __attribute__((target("sha3,neon")))
uint64x2_t vsha512hq_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2)

functionvsha512h2q_u64

__ai __attribute__((target("sha3,neon")))
uint64x2_t vsha512h2q_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2)

functionvsha512su0q_u64

__ai __attribute__((target("sha3,neon")))
uint64x2_t vsha512su0q_u64(uint64x2_t __p0, uint64x2_t __p1)

functionvsha512su1q_u64

__ai __attribute__((target("sha3,neon")))
uint64x2_t vsha512su1q_u64(uint64x2_t __p0, uint64x2_t __p1, uint64x2_t __p2)

macrovxarq_u64

#define vxarq_u64(__p0, __p1, __p2) __extension__ ({
  uint64x2_t __ret;
  uint64x2_t __s0 = __p0;
  uint64x2_t __s1 = __p1;
  __ret = __builtin_bit_cast(uint64x2_t, __builtin_neon_vxarq_u64(__builtin_bit_cast(int8x16_t, __s0), __builtin_bit_cast(int8x16_t, __s1), __p2, 51));
  __ret;
})

functionvsm3partw1q_u32

__ai __attribute__((target("sm4,neon")))
uint32x4_t vsm3partw1q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionvsm3partw2q_u32

__ai __attribute__((target("sm4,neon")))
uint32x4_t vsm3partw2q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

functionvsm3ss1q_u32

__ai __attribute__((target("sm4,neon")))
uint32x4_t vsm3ss1q_u32(uint32x4_t __p0, uint32x4_t __p1, uint32x4_t __p2)

macrovsm3tt1aq_u32

#define vsm3tt1aq_u32(__p0, __p1, __p2, __p3) __extension__ ({
  uint32x4_t __ret;
  uint32x4_t __s0 = __p0;
  uint32x4_t __s1 = __p1;
  uint32x4_t __s2 = __p2;
  __ret = __builtin_bit_cast(uint32x4_t, __builtin_neon_vsm3tt1aq_u32(__builtin_bit_cast(int8x16_t, __s0), __builtin_bit_cast(int8x16_t, __s1), __builtin_bit_cast(int8x16_t, __s2), __p3, 50));
  __ret;
})

macrovsm3tt1bq_u32

#define vsm3tt1bq_u32(__p0, __p1, __p2, __p3) __extension__ ({
  uint32x4_t __ret;
  uint32x4_t __s0 = __p0;
  uint32x4_t __s1 = __p1;
  uint32x4_t __s2 = __p2;
  __ret = __builtin_bit_cast(uint32x4_t, __builtin_neon_vsm3tt1bq_u32(__builtin_bit_cast(int8x16_t, __s0), __builtin_bit_cast(int8x16_t, __s1), __builtin_bit_cast(int8x16_t, __s2), __p3, 50));
  __ret;
})

macrovsm3tt2aq_u32

#define vsm3tt2aq_u32(__p0, __p1, __p2, __p3) __extension__ ({
  uint32x4_t __ret;
  uint32x4_t __s0 = __p0;
  uint32x4_t __s1 = __p1;
  uint32x4_t __s2 = __p2;
  __ret = __builtin_bit_cast(uint32x4_t, __builtin_neon_vsm3tt2aq_u32(__builtin_bit_cast(int8x16_t, __s0), __builtin_bit_cast(int8x16_t, __s1), __builtin_bit_cast(int8x16_t, __s2), __p3, 50));
  __ret;
})

macrovsm3tt2bq_u32

#define vsm3tt2bq_u32(__p0, __p1, __p2, __p3) __extension__ ({
  uint32x4_t __ret;
  uint32x4_t __s0 = __p0;
  uint32x4_t __s1 = __p1;
  uint32x4_t __s2 = __p2;
  __ret = __builtin_bit_cast(uint32x4_t, __builtin_neon_vsm3tt2bq_u32(__builtin_bit_cast(int8x16_t, __s0), __builtin_bit_cast(int8x16_t, __s1), __builtin_bit_cast(int8x16_t, __s2), __p3, 50));
  __ret;
})

functionvsm4eq_u32

__ai __attribute__((target("sm4,neon")))
uint32x4_t vsm4eq_u32(uint32x4_t __p0, uint32x4_t __p1)

functionvsm4ekeyq_u32

__ai __attribute__((target("sm4,neon")))
uint32x4_t vsm4ekeyq_u32(uint32x4_t __p0, uint32x4_t __p1)