1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00

AVX512 only for ASM compilation

This commit is contained in:
azusayamaguchi 2016-12-16 22:03:29 +00:00
parent eabc577940
commit a2a6329094
2 changed files with 8 additions and 0 deletions

View File

@ -192,9 +192,11 @@ void StaggeredKernels<Impl>::DhopSiteDag(StencilImpl &st, LebesgueOrder &lo, Dou
int oneLink =0;
int threeLink=1;
switch(Opt) {
#ifdef AVX512
case OptInlineAsm:
DhopSiteAsm(st,lo,U,UUU,buf,sF,sU,in,out._odata[sF]);
break;
#endif
case OptHandUnroll:
DhopSiteDepthHand(st,lo,U,buf,sF,sU,in,naive,oneLink);
DhopSiteDepthHand(st,lo,UUU,buf,sF,sU,in,naik,threeLink);
@ -220,9 +222,11 @@ void StaggeredKernels<Impl>::DhopSite(StencilImpl &st, LebesgueOrder &lo, Double
SiteSpinor naive;
static int once;
switch(Opt) {
#ifdef AVX512
case OptInlineAsm:
DhopSiteAsm(st,lo,U,UUU,buf,sF,sU,in,out._odata[sF]);
break;
#endif
case OptHandUnroll:
DhopSiteDepthHand(st,lo,U,buf,sF,sU,in,naive,oneLink);
DhopSiteDepthHand(st,lo,UUU,buf,sF,sU,in,naik,threeLink);

View File

@ -257,6 +257,7 @@ void StaggeredKernels<Impl>::DhopSiteAsm(StencilImpl &st, LebesgueOrder &lo,
SiteSpinor *buf, int sF,
int sU, const FermionField &in, SiteSpinor &out)
{
#ifdef AVX512
uint64_t gauge0,gauge1,gauge2,gauge3;
uint64_t addr0,addr1,addr2,addr3;
@ -318,6 +319,9 @@ void StaggeredKernels<Impl>::DhopSiteAsm(StencilImpl &st, LebesgueOrder &lo,
addr0 = (uint64_t) &out;
REDUCE(addr0);
#else
assert(0);
#endif
}
FermOpStaggeredTemplateInstantiate(StaggeredKernels);