QDP++
sse_linalg_m_eq_mh_double.cc File Reference

Generic Scalar VAXPY routine. More...

#include "qdp_diagnostics.h"
#include "scalarsite_sse/sse_linalg_mm_su3_double.h"
#include <xmmintrin.h>
#include "qdp_config.h"

Go to the source code of this file.

Namespaces

namespace  QDP
 Yet another random number generator.

Macros

#define CONJMUL(z, x, y)
#define CONJMADD(z, x, y)

Functions

void QDP::ssed_m_eq_mh_u (REAL64 *m3, REAL64 *m2, REAL64 *m1, int n_mat)
void QDP::ssed_m_peq_amh_u (REAL64 *m3, REAL64 *a, REAL64 *m2, REAL64 *m1, int n_mat)
void QDP::ssed_m_eq_mh (REAL64 *m3, REAL64 *m2, REAL64 *m1, int n_mat)
void QDP::ssed_m_peq_amh (REAL64 *m3, REAL64 *a, REAL64 *m2, REAL64 *m1, int n_mat)

Detailed Description

Generic Scalar VAXPY routine.

Definition in file sse_linalg_m_eq_mh_double.cc.

Macro Definition Documentation

◆ CONJMADD

#define CONJMADD ( z,
x,
y )
Value:
{ \
__m128d t1,t2,t3,t4; \
t1 = _mm_mul_pd(x,y); \
t2 = _mm_shuffle_pd(t1,t1,0x1); \
t3 = _mm_shuffle_pd(y,y,0x1);\
t4 = _mm_add_pd(t1,t2); \
t2 = _mm_mul_pd(x,t3); \
t3 = _mm_shuffle_pd(t2,t2,0x1); \
t3 = _mm_sub_pd(t2,t3); \
t4= _mm_shuffle_pd(t4,t3,0x2); \
z = _mm_add_pd(z,t4); \
}

Definition at line 33 of file sse_linalg_m_eq_mh_double.cc.

◆ CONJMUL

#define CONJMUL ( z,
x,
y )
Value:
{ \
__m128d t1,t2,t3,t4; \
t1 = _mm_mul_pd(x,y); \
t2 = _mm_shuffle_pd(t1,t1,0x1); \
t3 = _mm_shuffle_pd(y,y,0x1);\
z = _mm_add_pd(t1,t2); \
t2 = _mm_mul_pd(x,t3); \
t3 = _mm_shuffle_pd(t2,t2,0x1); \
t3 = _mm_sub_pd(t2,t3); \
z= _mm_shuffle_pd(z,t3,0x2); \
}

Definition at line 20 of file sse_linalg_m_eq_mh_double.cc.