27 #ifndef _WMMINTRIN_H_INCLUDED
28 #define _WMMINTRIN_H_INCLUDED
33 #if !defined (__AES__) && !defined (__PCLMUL__)
34 # error "AES/PCLMUL instructions not enabled"
42 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
43 _mm_aesdec_si128 (__m128i
__X, __m128i
__Y)
45 return (__m128i) __builtin_ia32_aesdec128 ((__v2di)__X, (__v2di)__Y);
50 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
51 _mm_aesdeclast_si128 (__m128i __X, __m128i __Y)
53 return (__m128i) __builtin_ia32_aesdeclast128 ((__v2di)__X,
59 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
60 _mm_aesenc_si128 (__m128i __X, __m128i __Y)
62 return (__m128i) __builtin_ia32_aesenc128 ((__v2di)__X, (__v2di)__Y);
67 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
68 _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
70 return (__m128i) __builtin_ia32_aesenclast128 ((__v2di)__X, (__v2di)__Y);
75 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
76 _mm_aesimc_si128 (__m128i __X)
78 return (__m128i) __builtin_ia32_aesimc128 ((__v2di)__X);
85 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
86 _mm_aeskeygenassist_si128 (__m128i __X, const
int __C)
88 return (__m128i) __builtin_ia32_aeskeygenassist128 ((__v2di)__X, __C);
91 #define _mm_aeskeygenassist_si128(X, C) \
92 ((__m128i) __builtin_ia32_aeskeygenassist128 ((__v2di)(__m128i)(X), \
105 extern __inline __m128i
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
106 _mm_clmulepi64_si128 (__m128i __X, __m128i __Y, const
int __I)
108 return (__m128i) __builtin_ia32_pclmulqdq128 ((__v2di)__X,
112 #define _mm_clmulepi64_si128(X, Y, I) \
113 ((__m128i) __builtin_ia32_pclmulqdq128 ((__v2di)(__m128i)(X), \
114 (__v2di)(__m128i)(Y), (int)(I)))
__inline unsigned char unsigned int unsigned int __Y
Definition: adxintrin.h:33
__inline __m128d __m128i __C
Definition: avxintrin.h:576
double __v4df __attribute__((__vector_size__(32)))
Definition: avxintrin.h:32
__inline unsigned char unsigned int __X
Definition: adxintrin.h:33