Select Git revision
experiment_setup.py
-
lukas leufen authoredlukas leufen authored
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);
')