Skip to content
Snippets Groups Projects
Select Git revision
  • 2022
  • 2021
  • master protected
  • 2021
4 results

README.md

Blame
  • intest 1.24 KiB
    define(`complex_doublesveadd', 
    `	svfloat64_t re = svadd_f64_z(ig, $1.v0, $2.v0);
    	svfloat64_t im = svadd_f64_z(ig, $1.v1, $2.v1);
    	svfloat64x2_t res = {re, im};
    
    	svst2_f64(ig, (double *) &$3, res);	
    ')
    
    define(`complex_doublesvesub', 
    `	svfloat64_t re = svsub_f64_z(ig, $1.v0, $2.v0);
    	svfloat64_t im = svsub_f64_z(ig, $1.v1, $2.v1);
    	svfloat64x2_t res = {re, im};
    
    	svst2_f64(ig, (double *) &$3, res);	
    ')
    
    define(`complex_doublesvemul', 
    `	svfloat64_t retemp = svmul_f64_z(ig, $1.v0, $2.v0);
    	svfloat64_t imtemp = svmul_f64_z(ig, $1.v0, $2.v1);
    	svfloat64_t re = svmls_f64_z(ig, retemp, $1.v1, $2.v1); 
    	svfloat64_t im = svmla_f64_z(ig, imtemp, $1.v1, $2.v0); 
    	svfloat64x2_t res = {re, im};
    
    	svst2_f64(ig, (double *) &$3, res);	
    ')
    
    define(`complex_doublesvediv', 
    `
    	svfloat64_t retemp = svmul_f64_z(ig, $1.v0, $2.v0);
    	svfloat64_t imtemp = svmul_f64_z(ig, $1.v1, $2.v0);
    	svfloat64_t re1 = svmla_f64_z(ig, retemp, $1.v1, $2.v1); 
    	svfloat64_t im1 = svmla_f64_z(ig, retemp, $1.v0, $2.v1); 
    	svfloat64_t denom = svadd_f64_z(ig, svmul_f64_z(ig, $2.v0, $2.v0), svmul_f64_z(ig, $2.v1, $2.v1));
    	svfloat64_t re = svdiv_f64_z(ig, re1, denom);
    	svfloat64_t im = svdiv_f64_z(ig, im1, denom);
    	svfloat64x2_t res = {re, im};
    
    	svst2_f64(ig, (double *) &$3, res);	
    ')