QDP++
sse_linalg_m_eq_hh_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.

Classes

union  QDP::VD

Namespaces

namespace  QDP
 Yet another random number generator.

Macros

#define QDP_CONFIG_H
#define CCMUL(z, x, y)
#define CCMADD(z, x, y)

Functions

static const char *const QDP::QDP_PACKAGE (PACKAGE)
static const char *const QDP::QDP_PACKAGE_BUGREPORT (PACKAGE_BUGREPORT)
static const char *const QDP::QDP_PACKAGE_NAME (PACKAGE_NAME)
static const char *const QDP::QDP_PACKAGE_STRING (PACKAGE_STRING)
static const char *const QDP::QDP_PACKAGE_TARNAME (PACKAGE_TARNAME)
static const char *const QDP::QDP_PACKAGE_VERSION (PACKAGE_VERSION)
static const char *const QDP::QDP_VERSION (VERSION)
void QDP::ssed_m_eq_hh_u (REAL64 *m3, REAL64 *m2, REAL64 *m1, int n_mat)
void QDP::ssed_m_peq_ahh_u (REAL64 *m3, REAL64 *a, REAL64 *m2, REAL64 *m1, int n_mat)
void QDP::ssed_m_eq_hh (REAL64 *m3, REAL64 *m2, REAL64 *m1, int n_mat)
void QDP::ssed_m_peq_ahh (REAL64 *m3, REAL64 *a, REAL64 *m2, REAL64 *m1, int n_mat)

Detailed Description

Generic Scalar VAXPY routine.

Definition in file sse_linalg_m_eq_hh_double.cc.

Macro Definition Documentation

◆ CCMADD

#define CCMADD ( z,
x,
y )
Value:
{ \
__m128d t1,t2,t3,t4; \
__m128d t5 = _mm_set_pd( (double)(-1),(double)1) ; \
t1 = _mm_mul_pd(x,y); \
t2 = _mm_shuffle_pd(t1,t1,0x1); \
t3 = _mm_shuffle_pd(y,y,0x1);\
t4 = _mm_sub_pd(t1,t2); \
t2 = _mm_mul_pd(x,t3); \
t3 = _mm_shuffle_pd(t2,t2,0x1); \
t3 = _mm_add_pd(t2,t3); \
t4= _mm_shuffle_pd(t4,t3,0x2); \
t4= _mm_mul_pd(t5, t4); \
z = _mm_add_pd(z,t4); \
}

Definition at line 40 of file sse_linalg_m_eq_hh_double.cc.

Referenced by QDP::ssed_m_eq_hh(), QDP::ssed_m_eq_hh_u(), QDP::ssed_m_peq_ahh(), and QDP::ssed_m_peq_ahh_u().

◆ CCMUL

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

Definition at line 25 of file sse_linalg_m_eq_hh_double.cc.

Referenced by QDP::ssed_m_eq_hh(), QDP::ssed_m_eq_hh_u(), QDP::ssed_m_peq_ahh(), and QDP::ssed_m_peq_ahh_u().

◆ QDP_CONFIG_H

#define QDP_CONFIG_H