Commit 135e3732 authored by Andreas Marek's avatar Andreas Marek

Start to unify 128bit and 256bit kernels

parent e04b11b2
......@@ -775,7 +775,6 @@ EXTRA_DIST = \
src/elpa2/kernels/complex_sse_1hv_template.c \
src/elpa2/kernels/complex_sse_2hv_template.c \
src/elpa2/kernels/complex_template.F90 \
src/elpa2/kernels/real_avx-avx2_2hv_template.c \
src/elpa2/kernels/real_avx-avx2_4hv_template.c \
src/elpa2/kernels/real_avx-avx2_6hv_template.c \
src/elpa2/kernels/real_avx512_2hv_template.c \
......
......@@ -48,8 +48,12 @@
#define REALCASE 1
#define DOUBLE_PRECISION 1
#define BLOCK2 1
#define VEC_SET 256
#include "../../general/precision_macros.h"
#include "real_avx-avx2_2hv_template.c"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK2
#undef VEC_SET
#undef REALCASE
#undef DOUBLE_PRECISION
......@@ -48,8 +48,12 @@
#define REALCASE 1
#define SINGLE_PRECISION 1
#define BLOCK2 1
#define VEC_SET 256
#include "../../general/precision_macros.h"
#include "real_avx-avx2_2hv_template.c"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK2
#undef VEC_SET
#undef REALCASE
#undef SINGLE_PRECISION
......@@ -148,37 +148,6 @@ void double_hh_trafo_real_avx_avx2_2hv_double(double* q, double* hh, int* pnb, i
void double_hh_trafo_real_avx_avx2_2hv_single(float* q, float* hh, int* pnb, int* pnq, int* pldq, int* pldh);
#endif
#ifdef DOUBLE_PRECISION_REAL
/*
!f>#if defined(HAVE_AVX) || defined(HAVE_AVX2)
!f> interface
!f> subroutine double_hh_trafo_real_avx_avx2_2hv_double(q, hh, pnb, pnq, pldq, pldh) &
!f> bind(C, name="double_hh_trafo_real_avx_avx2_2hv_double")
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> type(c_ptr), value :: q
!f> real(kind=c_double) :: hh(pnb,6)
!f> end subroutine
!f> end interface
!f>#endif
*/
#endif
#ifdef SINGLE_PRECISION_REAL
/*
!f>#if defined(HAVE_AVX) || defined(HAVE_AVX2)
!f> interface
!f> subroutine double_hh_trafo_real_avx_avx2_2hv_single(q, hh, pnb, pnq, pldq, pldh) &
!f> bind(C, name="double_hh_trafo_real_avx_avx2_2hv_single")
!f> use, intrinsic :: iso_c_binding
!f> integer(kind=c_int) :: pnb, pnq, pldq, pldh
!f> type(c_ptr), value :: q
!f> real(kind=c_float) :: hh(pnb,6)
!f> end subroutine
!f> end interface
!f>#endif
*/
#endif
#ifdef DOUBLE_PRECISION_REAL
void double_hh_trafo_real_avx_avx2_2hv_double(double* q, double* hh, int* pnb, int* pnq, int* pldq, int* pldh)
#endif
......
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define DOUBLE_PRECISION 1
#define BLOCK2 1
#define VEC_SET 1281
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef REALCASE
#undef VEC_SET
#undef BLOCK2
#undef DOUBLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define SINGLE_PRECISION 1
#define BLOCK2 1
#define VEC_SET 1281
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK2
#undef VEC_SET
#undef REALCASE
#undef SINGLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define DOUBLE_PRECISION 1
#define BLOCK4 1
#define VEC_SET 1281
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK4
#undef VEC_SET
#undef REALCASE
#undef DOUBLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define SINGLE_PRECISION 1
#define BLOCK4 1
#define VEC_SET 1281
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK4
#undef VEC_SET
#undef REALCASE
#undef SINGLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define DOUBLE_PRECISION 1
#define BLOCK6 1
#define VEC_SET 1281
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef REALCASE
#undef VEC_SET
#undef BLOCK6
#undef DOUBLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define SINGLE_PRECISION 1
#define BLOCK6 1
#define VEC_SET 1281
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef REALCASE
#undef VEC_SET
#undef BLOCK6
#undef SINGLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define DOUBLE_PRECISION 1
#define BLOCK2 1
#define VEC_SET 128
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK2
#undef VEC_SET
#undef REALCASE
#undef DOUBLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define SINGLE_PRECISION 1
#define BLOCK2 1
#define VEC_SET 128
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK2
#undef VEC_SET
#undef REALCASE
#undef SINGLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define DOUBLE_PRECISION 1
#define BLOCK4 1
#define VEC_SET 128
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK4
#undef VEC_SET
#undef REALCASE
#undef DOUBLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define SINGLE_PRECISION 1
#define BLOCK4 1
#define VEC_SET 128
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef BLOCK4
#undef VEC_SET
#undef REALCASE
#undef SINGLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define DOUBLE_PRECISION 1
#define BLOCK6 1
#define VEC_SET 128
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef REALCASE
#undef VEC_SET
#undef BLOCK6
#undef DOUBLE_PRECISION
......@@ -49,9 +49,11 @@
#define REALCASE 1
#define SINGLE_PRECISION 1
#define BLOCK6 1
#define VEC_SET 128
#include "../../general/precision_macros.h"
#include "real_128bit_BLOCK_template.c"
#undef REALCASE
#undef VEC_SET
#undef BLOCK6
#undef SINGLE__PRECISION
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment