Skip to content
Snippets Groups Projects
Select Git revision
  • stable-2.0.0
  • main default protected
  • airflow-2.7.0 protected
  • airflow253 protected
  • air251
  • test_docker_op
  • airflow225
  • mptest
  • https-deployment
  • datacat_integration protected
  • datacatalog-integration
  • stable-2.2.2 protected
  • stable-2.2.1 protected
  • stable-2.2.0 protected
  • stable-2.1.4 protected
  • stable-2.1.3 protected
  • stable-2.1.2 protected
  • stable-2.1.1 protected
  • stable-2.1.0 protected
  • stable-2.0.2 protected
  • stable-2.0.1 protected
  • stable-1.0.1 protected
  • stable-1.0 protected
  • stable-0.1 protected
24 results

justreg.py

Blame
  • complex_double.m4 11.40 KiB
    divert(`-1')
    
    define(`complex_doublesve', `defn(format(``complex_doublesve.%s'', `$1'))')
    define(`complex_doublesve_set', `define(format(``complex_doublesve.%s'', `$1'), `$2')')
    
    dnl
    complex_doublesve_set(`vec',  `svfloat64x2_t')dnl
    complex_doublesve_set(`intvec',  `svuint64_t')dnl
    complex_doublesve_set(`scalpointer',  `double')dnl
    dnl
    complex_doublesve_set(`load',  `svld2_f64')dnl
    complex_doublesve_set(`gatherload',  `svld1_gather_index')dnl
    complex_doublesve_set(`store', `svst2_f64')dnl
    complex_doublesve_set(`count', `svcntd() / 2')dnl
    complex_doublesve_set(`index', `svindex_u64')dnl
    complex_doublesve_set(`true',  `svptrue_b64()')dnl
    complex_doublesve_set(`while', `svwhilelt_b64')dnl
    complex_doublesve_set(`neg',   `svneg_f64_z')dnl
    complex_doublesve_set(`abs',   `svabs_f64_z')dnl
    dnl
    complex_doublesve_set(`add',   `svadd_f64_z')dnl
    complex_doublesve_set(`sub',   `svsub_f64_z')dnl
    complex_doublesve_set(`mul',   `svmul_f64_z')dnl
    complex_doublesve_set(`div',   `svdiv_f64_z')dnl
    dnl
    dnl
    
    define(`complex_double_sve_intr_while_lower',
    `pg = svwhilelt_b64($1, $2);    ')
    
    define(`complex_double_sve_intr_load',
    `ifdef(`disable_complex_instructions',
    `    svfloat64x2_t $3 = svld2_f64(pg, (const double *) &$1[$2 * 2]);
    ',
    `    svfloat64_t $3 = svld1_f64(pg, (const double *) &$1[$2 / 2]);  
    ')
    ')
    
    define(`complex_double_sve_intr_dup',
    `ifdef(`disable_complex_instructions',
    `    svfloat64x2_t $2 = {svdup_f64(creal($1)), svdup_f64(cimag($1))};
    ',
    `    svfloat64_t $2 = svdupq_f64( creal($1), cimag($1));  
    ')
    ')
    
    define(`complex_double_sve_intr_add', 
    `ifdef(`disable_complex_instructions',
    `	svfloat64_t re = svadd_f64_z(pg, $1.v0, $2.v0);
    	svfloat64_t im = svadd_f64_z(pg, $1.v1, $2.v1);
    	svfloat64x2_t res = {re, im};
    
    	svst2_f64(pg, (double *) &$3[$4 * 2], res);	
    ',
    `	svfloat64_t res = svadd_f64_z(pg, $1, $2);
    
    	svst1_f64(pg, (double *) &$3[$4 / 2], res);	
    ')
    ')
    
    define(`complex_double_sve_intr_sub', 
    `ifdef(`disable_complex_instructions',
    `	svfloat64_t re = svsub_f64_z(pg, $1.v0, $2.v0);
    	svfloat64_t im = svsub_f64_z(pg, $1.v1, $2.v1);
    	svfloat64x2_t res = {re, im};
    
    	svst2_f64(pg, (double *) &$3[$4 * 2], res);	
    ',
    `	svfloat64_t res = svsub_f64_z(pg, $1, $2);