#include <xmmintrin.h>
#include <assert.h>
#include <ivec.h>
#include <crtdefs.h>
Go to the source code of this file.
|
#define | EXPLICIT explicit |
|
#define | Fvec32s4_COMP(op) friend F32vec4 cmp##op (const F32vec4 &a,const F32vec4 &b) { return _mm_cmp##op##_ps(a,b); } |
|
#define | Fvec32s4_SELECT(op) inline F32vec4 select_##op (const F32vec4 &a,const F32vec4 &b,const F32vec4 &c,const F32vec4 &d) { F32vec4 mask = _mm_cmp##op##_ps(a,b); return((mask & c) | F32vec4((_mm_andnot_ps(mask,d)))); } |
|
#define | Fvec32s1_COMP(op) friend F32vec1 cmp##op (const F32vec1 &a,const F32vec1 &b) { return _mm_cmp##op##_ss(a,b); } |
|
#define | Fvec32s1_SELECT(op) inline F32vec1 select_##op (const F32vec1 &a,const F32vec1 &b,const F32vec1 &c,const F32vec1 &d) { F32vec1 mask = _mm_cmp##op##_ss(a,b); return((mask & c) | F32vec1((_mm_andnot_ps(mask,d)))); } |
|
|
F32vec4 | unpack_low (const F32vec4 &a, const F32vec4 &b) |
|
F32vec4 | unpack_high (const F32vec4 &a, const F32vec4 &b) |
|
int | move_mask (const F32vec4 &a) |
|
void | loadu (F32vec4 &a, float *p) |
|
void | storeu (float *p, const F32vec4 &a) |
|
void | store_nta (float *p, F32vec4 &a) |
|
| Fvec32s4_SELECT (eq) Fvec32s4_SELECT(lt) Fvec32s4_SELECT(le) Fvec32s4_SELECT(gt) Fvec32s4_SELECT(ge) Fvec32s4_SELECT(neq) Fvec32s4_SELECT(nlt) Fvec32s4_SELECT(nle) Fvec32s4_SELECT(ngt) Fvec32s4_SELECT(nge) inline Is16vec4 simd_max(const Is16vec4 &a |
|
Is16vec4 | simd_min (const Is16vec4 &a, const Is16vec4 &b) |
|
Iu8vec8 | simd_max (const Iu8vec8 &a, const Iu8vec8 &b) |
|
Iu8vec8 | simd_min (const Iu8vec8 &a, const Iu8vec8 &b) |
|
Iu16vec4 | simd_avg (const Iu16vec4 &a, const Iu16vec4 &b) |
|
Iu8vec8 | simd_avg (const Iu8vec8 &a, const Iu8vec8 &b) |
|
int | move_mask (const I8vec8 &a) |
|
Iu16vec4 | mul_high (const Iu16vec4 &a, const Iu16vec4 &b) |
|
void | mask_move (const I8vec8 &a, const I8vec8 &b, char *addr) |
|
void | store_nta (__m64 *p, M64 &a) |
|
int | F32vec4ToInt (const F32vec4 &a) |
|
Is32vec2 | F32vec4ToIs32vec2 (const F32vec4 &a) |
|
F32vec4 | IntToF32vec4 (const F32vec4 &a, int i) |
|
F32vec4 | Is32vec2ToF32vec4 (const F32vec4 &a, const Is32vec2 &b) |
|
| Fvec32s1_SELECT (eq) Fvec32s1_SELECT(lt) Fvec32s1_SELECT(le) Fvec32s1_SELECT(gt) Fvec32s1_SELECT(ge) Fvec32s1_SELECT(neq) Fvec32s1_SELECT(nlt) Fvec32s1_SELECT(nle) Fvec32s1_SELECT(ngt) Fvec32s1_SELECT(nge) inline int F32vec1ToInt(const F32vec1 &a) |
|
◆ EXPLICIT
This file has no copyright assigned and is placed in the Public Domain. This file is part of the w64 mingw-runtime package. No warranty is given; refer to the file DISCLAIMER within this package.
Definition at line 26 of file fvec.h.
◆ Fvec32s1_COMP
◆ Fvec32s1_SELECT
◆ Fvec32s4_COMP
◆ Fvec32s4_SELECT
◆ F32vec4ToInt()
Definition at line 142 of file fvec.h.
GLboolean GLboolean GLboolean GLboolean a
int _mm_cvtt_ss2si(__m128 a)
◆ F32vec4ToIs32vec2()
◆ Fvec32s1_SELECT()
Fvec32s1_SELECT |
( |
eq |
| ) |
const & |
◆ Fvec32s4_SELECT()
Fvec32s4_SELECT |
( |
eq |
| ) |
const & |
◆ IntToF32vec4()
Definition at line 149 of file fvec.h.
149 {
153}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
__m128 _mm_cvt_si2ss(__m128 a, int b)
◆ Is32vec2ToF32vec4()
Definition at line 155 of file fvec.h.
155 {
159}
GLboolean GLboolean GLboolean b
◆ loadu()
Definition at line 115 of file fvec.h.
__m128 _mm_loadu_ps(float const *p)
◆ mask_move()
Definition at line 140 of file fvec.h.
GLenum const GLvoid * addr
◆ move_mask() [1/2]
Definition at line 114 of file fvec.h.
int _mm_movemask_ps(__m128 a)
◆ move_mask() [2/2]
Definition at line 138 of file fvec.h.
138{
return _m_pmovmskb(
a); }
◆ mul_high()
Iu16vec4 mul_high |
( |
const Iu16vec4 & |
a, |
|
|
const Iu16vec4 & |
b |
|
) |
| |
|
inline |
Definition at line 139 of file fvec.h.
139{
return _m_pmulhuw(
a,
b); }
◆ simd_avg() [1/2]
Iu16vec4 simd_avg |
( |
const Iu16vec4 & |
a, |
|
|
const Iu16vec4 & |
b |
|
) |
| |
|
inline |
Definition at line 136 of file fvec.h.
136{
return _m_pavgw(
a,
b); }
◆ simd_avg() [2/2]
Iu8vec8 simd_avg |
( |
const Iu8vec8 & |
a, |
|
|
const Iu8vec8 & |
b |
|
) |
| |
|
inline |
Definition at line 137 of file fvec.h.
137{
return _m_pavgb(
a,
b); }
◆ simd_max()
Iu8vec8 simd_max |
( |
const Iu8vec8 & |
a, |
|
|
const Iu8vec8 & |
b |
|
) |
| |
|
inline |
Definition at line 134 of file fvec.h.
134{
return _m_pmaxub(
a,
b); }
◆ simd_min() [1/2]
Is16vec4 simd_min |
( |
const Is16vec4 & |
a, |
|
|
const Is16vec4 & |
b |
|
) |
| |
|
inline |
Definition at line 133 of file fvec.h.
133{
return _m_pminsw(
a,
b); }
◆ simd_min() [2/2]
Iu8vec8 simd_min |
( |
const Iu8vec8 & |
a, |
|
|
const Iu8vec8 & |
b |
|
) |
| |
|
inline |
Definition at line 135 of file fvec.h.
135{
return _m_pminub(
a,
b); }
◆ store_nta() [1/2]
void store_nta |
( |
__m64 * |
p, |
|
|
M64 & |
a |
|
) |
| |
|
inline |
Definition at line 141 of file fvec.h.
__INTRIN_INLINE_SSE void _mm_stream_pi(__m64 *__p, __m64 __a)
◆ store_nta() [2/2]
Definition at line 117 of file fvec.h.
void _mm_stream_ps(float *p, __m128 a)
◆ storeu()
Definition at line 116 of file fvec.h.
void _mm_storeu_ps(float *p, __m128 a)
◆ unpack_high()
Definition at line 113 of file fvec.h.
__m128 _mm_unpackhi_ps(__m128 a, __m128 b)
◆ unpack_low()
Definition at line 112 of file fvec.h.
__m128 _mm_unpacklo_ps(__m128 a, __m128 b)