#include <arm_neon.h>
Cryptography
AES, SHA-1, SHA-256, SHA-512, SHA-3 (eor3, rax1, xar, bcax), SM3 and SM4 instructions.
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)