ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
__wmmintrin_aes.h
Go to the documentation of this file.
1 /*===---- __wmmintrin_aes.h - AES intrinsics -------------------------------===
2  *
3  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4  * See https://llvm.org/LICENSE.txt for license information.
5  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6  *
7  *===-----------------------------------------------------------------------===
8  */
9 
10 #ifndef __WMMINTRIN_H
11 #error "Never use <__wmmintrin_aes.h> directly; include <wmmintrin.h> instead."
12 #endif
13 
14 #ifndef __WMMINTRIN_AES_H
15 #define __WMMINTRIN_AES_H
16 
17 /* Define the default attributes for the functions in this file. */
18 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("aes"), __min_vector_width__(128)))
19 
34 static __inline__ __m128i __DEFAULT_FN_ATTRS
35 _mm_aesenc_si128(__m128i __V, __m128i __R)
36 {
37  return (__m128i)__builtin_ia32_aesenc128((__v2di)__V, (__v2di)__R);
38 }
39 
54 static __inline__ __m128i __DEFAULT_FN_ATTRS
55 _mm_aesenclast_si128(__m128i __V, __m128i __R)
56 {
57  return (__m128i)__builtin_ia32_aesenclast128((__v2di)__V, (__v2di)__R);
58 }
59 
74 static __inline__ __m128i __DEFAULT_FN_ATTRS
75 _mm_aesdec_si128(__m128i __V, __m128i __R)
76 {
77  return (__m128i)__builtin_ia32_aesdec128((__v2di)__V, (__v2di)__R);
78 }
79 
94 static __inline__ __m128i __DEFAULT_FN_ATTRS
95 _mm_aesdeclast_si128(__m128i __V, __m128i __R)
96 {
97  return (__m128i)__builtin_ia32_aesdeclast128((__v2di)__V, (__v2di)__R);
98 }
99 
111 static __inline__ __m128i __DEFAULT_FN_ATTRS
112 _mm_aesimc_si128(__m128i __V)
113 {
114  return (__m128i)__builtin_ia32_aesimc128((__v2di)__V);
115 }
116 
135 #define _mm_aeskeygenassist_si128(C, R) \
136  (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
137 
138 #undef __DEFAULT_FN_ATTRS
139 
140 #endif /* __WMMINTRIN_AES_H */
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_aesenc_si128(__m128i __V, __m128i __R)
Performs a single round of AES encryption using the Equivalent Inverse Cipher, transforming the state...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_aesenclast_si128(__m128i __V, __m128i __R)
Performs the final round of AES encryption using the Equivalent Inverse Cipher, transforming the stat...
#define __DEFAULT_FN_ATTRS
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_aesimc_si128(__m128i __V)
Applies the AES InvMixColumns() transformation to an expanded key contained in the source operand,...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_aesdeclast_si128(__m128i __V, __m128i __R)
Performs the final round of AES decryption using the Equivalent Inverse Cipher, transforming the stat...
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_aesdec_si128(__m128i __V, __m128i __R)
Performs a single round of AES decryption using the Equivalent Inverse Cipher, transforming the state...