mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-04 19:25:56 +01:00
AVX512 improvements; sigfpe trapping too
This commit is contained in:
parent
83b15bfcdd
commit
60d965f79e
@ -318,7 +318,10 @@ void Grid_sa_signal_handler(int sig,siginfo_t *si,void * ptr)
|
|||||||
exit(0);
|
exit(0);
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
#ifdef GRID_FPE
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <fenv.h>
|
||||||
|
#endif
|
||||||
void Grid_debug_handler_init(void)
|
void Grid_debug_handler_init(void)
|
||||||
{
|
{
|
||||||
struct sigaction sa,osa;
|
struct sigaction sa,osa;
|
||||||
@ -327,5 +330,9 @@ void Grid_debug_handler_init(void)
|
|||||||
sa.sa_flags = SA_SIGINFO;
|
sa.sa_flags = SA_SIGINFO;
|
||||||
sigaction(SIGSEGV,&sa,NULL);
|
sigaction(SIGSEGV,&sa,NULL);
|
||||||
sigaction(SIGTRAP,&sa,NULL);
|
sigaction(SIGTRAP,&sa,NULL);
|
||||||
|
#ifdef GRID_FPE
|
||||||
|
feenableexcept( FE_INVALID|FE_OVERFLOW|FE_DIVBYZERO);
|
||||||
|
sigaction(SIGFPE,&sa,NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,10 @@ Author: paboyle <paboyle@ph.ed.ac.uk>
|
|||||||
#undef VZERO
|
#undef VZERO
|
||||||
#undef VTIMESI
|
#undef VTIMESI
|
||||||
#undef VTIMESMINUSI
|
#undef VTIMESMINUSI
|
||||||
|
#undef VMOVIDUP
|
||||||
|
#undef VMOVRDUP
|
||||||
|
#undef VMADDSUB
|
||||||
|
#undef VSHUF
|
||||||
|
|
||||||
#define VZERO(A) VZEROf(A)
|
#define VZERO(A) VZEROf(A)
|
||||||
#define VMOV(A,B) VMOVf(A,B)
|
#define VMOV(A,B) VMOVf(A,B)
|
||||||
@ -51,8 +55,8 @@ Author: paboyle <paboyle@ph.ed.ac.uk>
|
|||||||
|
|
||||||
#define VADD(A,B,C) VADDf(A,B,C)
|
#define VADD(A,B,C) VADDf(A,B,C)
|
||||||
#define VSUB(A,B,C) VSUBf(A,B,C)
|
#define VSUB(A,B,C) VSUBf(A,B,C)
|
||||||
#define VMUL(Uri,Uir,Chi,UChi,Z) VMULf(Uri,Uir,Chi,UChi,Z)
|
#define VMUL(Uri,Uir,Chi) VMULf(Uri,Uir,Chi)
|
||||||
#define VMADD(Uri,Uir,Chi,UChi,Z) VMADDf(Uri,Uir,Chi,UChi,Z)
|
#define VMADD(Uri,Uir,Chi) VMADDf(Uri,Uir,Chi)
|
||||||
|
|
||||||
#define VTIMESI(A,B,C) VTIMESIf(A,B,C)
|
#define VTIMESI(A,B,C) VTIMESIf(A,B,C)
|
||||||
#define VTIMESMINUSI(A,B,C) VTIMESMINUSIf(A,B,C)
|
#define VTIMESMINUSI(A,B,C) VTIMESMINUSIf(A,B,C)
|
||||||
@ -96,6 +100,10 @@ Author: paboyle <paboyle@ph.ed.ac.uk>
|
|||||||
|
|
||||||
#define VADDMEM(O,A,B,C) VADDMEMf(O,A,B,C)
|
#define VADDMEM(O,A,B,C) VADDMEMf(O,A,B,C)
|
||||||
#define VSUBMEM(O,A,B,C) VSUBMEMf(O,A,B,C)
|
#define VSUBMEM(O,A,B,C) VSUBMEMf(O,A,B,C)
|
||||||
|
#define VMOVIDUP(A,B,C) VMOVIDUPf(A,B,C)
|
||||||
|
#define VMOVRDUP(A,B,C) VMOVRDUPf(A,B,C)
|
||||||
|
#define VMADDSUB(A,B,accum) VMADDSUBf(A,B,accum)
|
||||||
|
#define VSHUF(A,B) VSHUFf(A,B)
|
||||||
|
|
||||||
#define ZMULMEM2SP(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr) ZMULMEM2SPf(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr)
|
#define ZMULMEM2SP(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr) ZMULMEM2SPf(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr)
|
||||||
#define ZMADDMEM2SP(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr) ZMADDMEM2SPf(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr)
|
#define ZMADDMEM2SP(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr) ZMADDMEM2SPf(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user