mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	AVX512 improvements; sigfpe trapping too
This commit is contained in:
		@@ -318,7 +318,10 @@ void Grid_sa_signal_handler(int sig,siginfo_t *si,void * ptr)
 | 
			
		||||
  exit(0);
 | 
			
		||||
  return;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef GRID_FPE
 | 
			
		||||
#define _GNU_SOURCE
 | 
			
		||||
#include <fenv.h>
 | 
			
		||||
#endif
 | 
			
		||||
void Grid_debug_handler_init(void)
 | 
			
		||||
{
 | 
			
		||||
  struct sigaction sa,osa;
 | 
			
		||||
@@ -327,5 +330,9 @@ void Grid_debug_handler_init(void)
 | 
			
		||||
  sa.sa_flags    = SA_SIGINFO;
 | 
			
		||||
  sigaction(SIGSEGV,&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 VTIMESI
 | 
			
		||||
#undef VTIMESMINUSI
 | 
			
		||||
#undef VMOVIDUP 
 | 
			
		||||
#undef VMOVRDUP 
 | 
			
		||||
#undef VMADDSUB
 | 
			
		||||
#undef VSHUF
 | 
			
		||||
 | 
			
		||||
#define VZERO(A)                  VZEROf(A)
 | 
			
		||||
#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 VSUB(A,B,C)               VSUBf(A,B,C)
 | 
			
		||||
#define VMUL(Uri,Uir,Chi,UChi,Z)  VMULf(Uri,Uir,Chi,UChi,Z)
 | 
			
		||||
#define VMADD(Uri,Uir,Chi,UChi,Z) VMADDf(Uri,Uir,Chi,UChi,Z)
 | 
			
		||||
#define VMUL(Uri,Uir,Chi)  VMULf(Uri,Uir,Chi)
 | 
			
		||||
#define VMADD(Uri,Uir,Chi) VMADDf(Uri,Uir,Chi)
 | 
			
		||||
 | 
			
		||||
#define VTIMESI(A,B,C)            VTIMESIf(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 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 ZMADDMEM2SP(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr) ZMADDMEM2SPf(O,P,tmp,B,C,Briir,Biirr,Criir,Ciirr) 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user