STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
wmmintrin.h
Go to the documentation of this file.
1 /***
2 *** Copyright (C) 1985-2015 Intel Corporation. All rights reserved.
3 ***
4 *** The information and source code contained herein is the exclusive
5 *** property of Intel Corporation and may not be disclosed, examined
6 *** or reproduced in whole or in part without explicit written authorization
7 *** from the company.
8 ***
9 ****/
10 
11 /*
12  * wmmintrin.h
13  *
14  * Principal header file for Intel(R) AES and PCLMULQDQ intrinsics.
15  */
16 
17 #pragma once
18 
19 #if !defined(_M_IX86) && !defined(_M_X64)
20 #error This header is specific to X86 and X64 targets
21 #endif
22 
23 #ifndef _INCLUDED_WMM
24 #define _INCLUDED_WMM
25 #ifndef __midl
26 
27 #if defined (_M_CEE_PURE)
28  #error ERROR: EMM intrinsics not supported in the pure mode!
29 #else /* defined (_M_CEE_PURE) */
30 
31 #include <nmmintrin.h>
32 
33 
34 #if __cplusplus
35 extern "C" {
36 #endif /* __cplusplus */
37 
38 /*
39  * Performs 1 round of AES decryption of the first m128i using
40  * the second m128i as a round key.
41  */
42 extern __m128i _mm_aesdec_si128(__m128i /* v */, __m128i /* rkey */);
43 
44 /*
45  * Performs the last round of AES decryption of the first m128i
46  * using the second m128i as a round key.
47  */
48 extern __m128i _mm_aesdeclast_si128(__m128i /* v */, __m128i /* rkey */);
49 
50 /*
51  * Performs 1 round of AES encryption of the first m128i using
52  * the second m128i as a round key.
53  */
54 extern __m128i _mm_aesenc_si128(__m128i /* v */, __m128i /* rkey */);
55 
56 /*
57  * Performs the last round of AES encryption of the first m128i
58  * using the second m128i as a round key.
59  */
60 extern __m128i _mm_aesenclast_si128(__m128i /* v */, __m128i /* rkey */);
61 
62 /*
63  * Performs the InverseMixColumn operation on the source m128i
64  * and stores the result into m128i destination.
65  */
66 extern __m128i _mm_aesimc_si128(__m128i /* v */);
67 
68 /*
69  * Generates a m128i round key for the input m128i
70  * AES cipher key and byte round constant.
71  * The second parameter must be a compile time constant.
72  */
73 extern __m128i _mm_aeskeygenassist_si128(__m128i /* ckey */, const int /* rcon */);
74 
75 /*
76  * Performs carry-less integer multiplication of 64-bit halves
77  * of 128-bit input operands.
78  * The third parameter inducates which 64-bit halves of the input parameters
79  * v1 and v2 should be used. It must be a compile time constant.
80  */
81 extern __m128i _mm_clmulepi64_si128(__m128i /* v1 */, __m128i /* v2 */,
82  const int /* imm8 */);
83 
84 
85 #if defined __cplusplus
86 }; /* End "C" */
87 #endif /* defined __cplusplus */
88 
89 #endif /* defined (_M_CEE_PURE) */
90 #endif /* __midl */
91 #endif /* _INCLUDED_WMM */
__m128i _mm_aesenc_si128(__m128i, __m128i)
__m128i _mm_aesenclast_si128(__m128i, __m128i)
__m128i _mm_aeskeygenassist_si128(__m128i, const int)
__m128i
Definition: emmintrin.h:53
__m128i _mm_aesdeclast_si128(__m128i, __m128i)
__m128i _mm_aesimc_si128(__m128i)
__m128i _mm_clmulepi64_si128(__m128i, __m128i, const int)
__m128i _mm_aesdec_si128(__m128i, __m128i)