STLdoc
STLdocumentation
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
VS2015
inc
mmintrin.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
* Definitions and declarations for use with compiler intrinsics.
13
*/
14
15
#pragma once
16
#ifndef _MMINTRIN_H_INCLUDED
17
#define _MMINTRIN_H_INCLUDED
18
#ifndef __midl
19
20
#if !defined _M_IX86 && !defined _M_X64
21
#error This header is specific to X86 and X64 targets
22
#endif
23
24
#if defined (_M_CEE_PURE)
25
#error ERROR: MM intrinsics not supported in the pure mode!
26
#else
/* defined (_M_CEE_PURE) */
27
28
#if defined __cplusplus
29
extern
"C"
{
/* Begin "C" */
30
/* Intrinsics use C name-mangling.
31
*/
32
#endif
/* defined __cplusplus */
33
34
typedef
union
__declspec(intrin_type)
__declspec
(
align
(8))
__m64
35
{
36
unsigned
__int64 m64_u64;
37
float
m64_f32[2];
38
__int8 m64_i8[8];
39
__int16 m64_i16[4];
40
__int32 m64_i32[2];
41
__int64 m64_i64;
42
unsigned
__int8 m64_u8[8];
43
unsigned
__int16 m64_u16[4];
44
unsigned
__int32 m64_u32[2];
45
}
__m64
;
46
47
#if defined(_M_IX86)
48
/* General support intrinsics */
49
void
_m_empty(
void
);
50
__m64
_m_from_int(
int
_I);
51
int
_m_to_int(
__m64
_M);
52
__m64
_m_packsswb(
__m64
_MM1,
__m64
_MM2);
53
__m64
_m_packssdw(
__m64
_MM1,
__m64
_MM2);
54
__m64
_m_packuswb(
__m64
_MM1,
__m64
_MM2);
55
__m64
_m_punpckhbw(
__m64
_MM1,
__m64
_MM2);
56
__m64
_m_punpckhwd(
__m64
_MM1,
__m64
_MM2);
57
__m64
_m_punpckhdq(
__m64
_MM1,
__m64
_MM2);
58
__m64
_m_punpcklbw(
__m64
_MM1,
__m64
_MM2);
59
__m64
_m_punpcklwd(
__m64
_MM1,
__m64
_MM2);
60
__m64
_m_punpckldq(
__m64
_MM1,
__m64
_MM2);
61
62
/* Packed arithmetic intrinsics */
63
__m64
_m_paddb(
__m64
_MM1,
__m64
_MM2);
64
__m64
_m_paddw(
__m64
_MM1,
__m64
_MM2);
65
__m64
_m_paddd(
__m64
_MM1,
__m64
_MM2);
66
__m64
_m_paddsb(
__m64
_MM1,
__m64
_MM2);
67
__m64
_m_paddsw(
__m64
_MM1,
__m64
_MM2);
68
__m64
_m_paddusb(
__m64
_MM1,
__m64
_MM2);
69
__m64
_m_paddusw(
__m64
_MM1,
__m64
_MM2);
70
__m64
_m_psubb(
__m64
_MM1,
__m64
_MM2);
71
__m64
_m_psubw(
__m64
_MM1,
__m64
_MM2);
72
__m64
_m_psubd(
__m64
_MM1,
__m64
_MM2);
73
__m64
_m_psubsb(
__m64
_MM1,
__m64
_MM2);
74
__m64
_m_psubsw(
__m64
_MM1,
__m64
_MM2);
75
__m64
_m_psubusb(
__m64
_MM1,
__m64
_MM2);
76
__m64
_m_psubusw(
__m64
_MM1,
__m64
_MM2);
77
__m64
_m_pmaddwd(
__m64
_MM1,
__m64
_MM2);
78
__m64
_m_pmulhw(
__m64
_MM1,
__m64
_MM2);
79
__m64
_m_pmullw(
__m64
_MM1,
__m64
_MM2);
80
81
/* Shift intrinsics */
82
__m64
_m_psllw(
__m64
_M,
__m64
_Count
);
83
__m64
_m_psllwi(
__m64
_M,
int
_Count
);
84
__m64
_m_pslld(
__m64
_M,
__m64
_Count
);
85
__m64
_m_pslldi(
__m64
_M,
int
_Count
);
86
__m64
_m_psllq(
__m64
_M,
__m64
_Count
);
87
__m64
_m_psllqi(
__m64
_M,
int
_Count
);
88
__m64
_m_psraw(
__m64
_M,
__m64
_Count
);
89
__m64
_m_psrawi(
__m64
_M,
int
_Count
);
90
__m64
_m_psrad(
__m64
_M,
__m64
_Count
);
91
__m64
_m_psradi(
__m64
_M,
int
_Count
);
92
__m64
_m_psrlw(
__m64
_M,
__m64
_Count
);
93
__m64
_m_psrlwi(
__m64
_M,
int
_Count
);
94
__m64
_m_psrld(
__m64
_M,
__m64
_Count
);
95
__m64
_m_psrldi(
__m64
_M,
int
_Count
);
96
__m64
_m_psrlq(
__m64
_M,
__m64
_Count
);
97
__m64
_m_psrlqi(
__m64
_M,
int
_Count
);
98
99
/* Logical intrinsics */
100
__m64
_m_pand(
__m64
_MM1,
__m64
_MM2);
101
__m64
_m_pandn(
__m64
_MM1,
__m64
_MM2);
102
__m64
_m_por(
__m64
_MM1,
__m64
_MM2);
103
__m64
_m_pxor(
__m64
_MM1,
__m64
_MM2);
104
105
/* Comparison intrinsics */
106
__m64
_m_pcmpeqb(
__m64
_MM1,
__m64
_MM2);
107
__m64
_m_pcmpeqw(
__m64
_MM1,
__m64
_MM2);
108
__m64
_m_pcmpeqd(
__m64
_MM1,
__m64
_MM2);
109
__m64
_m_pcmpgtb(
__m64
_MM1,
__m64
_MM2);
110
__m64
_m_pcmpgtw(
__m64
_MM1,
__m64
_MM2);
111
__m64
_m_pcmpgtd(
__m64
_MM1,
__m64
_MM2);
112
113
/* Utility intrinsics */
114
__m64
_mm_setzero_si64(
void
);
115
__m64
_mm_set_pi32(
int
_I1,
int
_I0);
116
__m64
_mm_set_pi16(
short
_S3,
short
_S2,
short
_S1,
short
_S0);
117
__m64
_mm_set_pi8(
char
_B7,
char
_B6,
char
_B5,
char
_B4,
118
char
_B3,
char
_B2,
char
_B1,
char
_B0);
119
__m64
_mm_set1_pi32(
int
_I);
120
__m64
_mm_set1_pi16(
short
_S);
121
__m64
_mm_set1_pi8(
char
_B);
122
__m64
_mm_setr_pi32(
int
_I1,
int
_I0);
123
__m64
_mm_setr_pi16(
short
_S3,
short
_S2,
short
_S1,
short
_S0);
124
__m64
_mm_setr_pi8(
char
_B7,
char
_B6,
char
_B5,
char
_B4,
125
char
_B3,
char
_B2,
char
_B1,
char
_B0);
126
127
/* Alternate intrinsic name definitions */
128
#define _mm_empty _m_empty
129
#define _mm_cvtsi32_si64 _m_from_int
130
#define _mm_cvtsi64_si32 _m_to_int
131
#define _mm_packs_pi16 _m_packsswb
132
#define _mm_packs_pi32 _m_packssdw
133
#define _mm_packs_pu16 _m_packuswb
134
#define _mm_unpackhi_pi8 _m_punpckhbw
135
#define _mm_unpackhi_pi16 _m_punpckhwd
136
#define _mm_unpackhi_pi32 _m_punpckhdq
137
#define _mm_unpacklo_pi8 _m_punpcklbw
138
#define _mm_unpacklo_pi16 _m_punpcklwd
139
#define _mm_unpacklo_pi32 _m_punpckldq
140
#define _mm_add_pi8 _m_paddb
141
#define _mm_add_pi16 _m_paddw
142
#define _mm_add_pi32 _m_paddd
143
#define _mm_adds_pi8 _m_paddsb
144
#define _mm_adds_pi16 _m_paddsw
145
#define _mm_adds_pu8 _m_paddusb
146
#define _mm_adds_pu16 _m_paddusw
147
#define _mm_sub_pi8 _m_psubb
148
#define _mm_sub_pi16 _m_psubw
149
#define _mm_sub_pi32 _m_psubd
150
#define _mm_subs_pi8 _m_psubsb
151
#define _mm_subs_pi16 _m_psubsw
152
#define _mm_subs_pu8 _m_psubusb
153
#define _mm_subs_pu16 _m_psubusw
154
#define _mm_madd_pi16 _m_pmaddwd
155
#define _mm_mulhi_pi16 _m_pmulhw
156
#define _mm_mullo_pi16 _m_pmullw
157
#define _mm_sll_pi16 _m_psllw
158
#define _mm_slli_pi16 _m_psllwi
159
#define _mm_sll_pi32 _m_pslld
160
#define _mm_slli_pi32 _m_pslldi
161
#define _mm_sll_si64 _m_psllq
162
#define _mm_slli_si64 _m_psllqi
163
#define _mm_sra_pi16 _m_psraw
164
#define _mm_srai_pi16 _m_psrawi
165
#define _mm_sra_pi32 _m_psrad
166
#define _mm_srai_pi32 _m_psradi
167
#define _mm_srl_pi16 _m_psrlw
168
#define _mm_srli_pi16 _m_psrlwi
169
#define _mm_srl_pi32 _m_psrld
170
#define _mm_srli_pi32 _m_psrldi
171
#define _mm_srl_si64 _m_psrlq
172
#define _mm_srli_si64 _m_psrlqi
173
#define _mm_and_si64 _m_pand
174
#define _mm_andnot_si64 _m_pandn
175
#define _mm_or_si64 _m_por
176
#define _mm_xor_si64 _m_pxor
177
#define _mm_cmpeq_pi8 _m_pcmpeqb
178
#define _mm_cmpeq_pi16 _m_pcmpeqw
179
#define _mm_cmpeq_pi32 _m_pcmpeqd
180
#define _mm_cmpgt_pi8 _m_pcmpgtb
181
#define _mm_cmpgt_pi16 _m_pcmpgtw
182
#define _mm_cmpgt_pi32 _m_pcmpgtd
183
#endif // defined(_M_IX86)
184
185
#if defined __cplusplus
186
};
/* End "C" */
187
#endif
/* defined __cplusplus */
188
189
#endif
/* defined (_M_CEE_PURE) */
190
#endif
/* __midl */
191
#endif
/* _MMINTRIN_H_INCLUDED */
_Count
unsigned int _Count
Definition:
xcomplex:668
align
void * align(size_t _Bound, size_t _Size, void *&_Ptr, size_t &_Space) _NOEXCEPT
Definition:
memory:1985
__m64
__m64
Definition:
mmintrin.h:45
__declspec
union __declspec(intrin_type) __declspec(align(8)) __m64
Definition:
mmintrin.h:34
Generated on Mon Jul 24 2017 18:15:19 for STLdoc by
1.8.8