PIPS
3dnow.h File Reference
#include <mm3dnow.h>
+ Include dependency graph for 3dnow.h:

Go to the source code of this file.

Macros

#define SIMD_LOAD_V2SF(vec, f)    vec = *(const __m64 *) &(f)[0]
 
#define SIMD_LOAD_GENERIC_V2SF(vec, f0, f1)
 
#define SIMD_STORE_V2SF(vec, f)    *(__m64 *)(&(f)[0]) = vec
 
#define SIMD_MULPS(vec1, vec2, vec3)    vec1 = _m_pfmul(vec2, vec3)
 
#define SIMD_ADDPS(vec1, vec2, vec3)    vec1 = _m_pfadd(vec2, vec3)
 
#define SIMD_SUBPS(vec1, vec2, vec3)    vec1 = _m_pfsub(vec2, vec3)
 
#define SIMD_ZERO_V4SF(vec)    SIMD_SUBPS(vec,vec,vec)
 should not be there :$ More...
 
#define SIMD_UMINPS(vec1, vec2)
 
#define SIMD_LOAD_V2SI_TO_V2SF(vec, f)
 

Typedefs

typedef float a2sf[2] __attribute__((aligned(16)))
 USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT. More...
 
typedef __m64 v2sf
 
typedef __m64 v2si
 

Macro Definition Documentation

◆ SIMD_ADDPS

#define SIMD_ADDPS (   vec1,
  vec2,
  vec3 
)     vec1 = _m_pfadd(vec2, vec3)

Definition at line 25 of file 3dnow.h.

◆ SIMD_LOAD_GENERIC_V2SF

#define SIMD_LOAD_GENERIC_V2SF (   vec,
  f0,
  f1 
)
Value:
do {\
a2sf __tmp;\
__tmp[0]=f0;\
__tmp[1]=f1;\
vec = *(const __m64 *) &(__tmp)[0];\
} while(0)

Definition at line 11 of file 3dnow.h.

◆ SIMD_LOAD_V2SF

#define SIMD_LOAD_V2SF (   vec,
  f 
)     vec = *(const __m64 *) &(f)[0]

Definition at line 9 of file 3dnow.h.

◆ SIMD_LOAD_V2SI_TO_V2SF

#define SIMD_LOAD_V2SI_TO_V2SF (   vec,
  f 
)
Value:
do { \
float __pips_f[2]; \
__pips_f[0] = (f)[0]; \
__pips_f[1] = (f)[1]; \
SIMD_LOAD_V2SF(vec, __pips_f); \
} while (0)
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
Definition: offsets.c:15

Definition at line 42 of file 3dnow.h.

◆ SIMD_MULPS

#define SIMD_MULPS (   vec1,
  vec2,
  vec3 
)     vec1 = _m_pfmul(vec2, vec3)

Definition at line 22 of file 3dnow.h.

◆ SIMD_STORE_V2SF

#define SIMD_STORE_V2SF (   vec,
  f 
)     *(__m64 *)(&(f)[0]) = vec

Definition at line 19 of file 3dnow.h.

◆ SIMD_SUBPS

#define SIMD_SUBPS (   vec1,
  vec2,
  vec3 
)     vec1 = _m_pfsub(vec2, vec3)

Definition at line 28 of file 3dnow.h.

◆ SIMD_UMINPS

#define SIMD_UMINPS (   vec1,
  vec2 
)
Value:
do { \
__m64 __pips_tmp; \
__pips_tmp = _m_pxor(__pips_tmp, __pips_tmp); \
SIMD_SUBPS(vec1, __pips_tmp, vec2); \
} while(0)

Definition at line 35 of file 3dnow.h.

◆ SIMD_ZERO_V4SF

#define SIMD_ZERO_V4SF (   vec)     SIMD_SUBPS(vec,vec,vec)

should not be there :$

Definition at line 32 of file 3dnow.h.

Typedef Documentation

◆ __attribute__

static int __attribute__

USER generates a user error (i.e., non fatal) by printing the given MSG according to the FMT.

For debugging:

This can be overridden in the PolyLib.

pop a what exception.

push a what exception on stack.

dump stack

total number of exceptions thrown, for statistics.

This can be overrided in the PolyLib.

keep track of last thrown exception for RETHROW()

This can be overrided in the PolyLib

check for any mismatch! This can be overrided in the PolyLib

compute the set N of nodes in flowgraph

Initialization D(n) = N

Definition at line 3 of file 3dnow.h.

◆ v2sf

typedef __m64 v2sf

Definition at line 4 of file 3dnow.h.

◆ v2si

typedef __m64 v2si

Definition at line 7 of file 3dnow.h.