1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-05 11:45:56 +01:00

implemented correct _m form (using 3 operands instead of 2)

This commit is contained in:
nmeyer-ur 2020-05-15 10:01:05 +02:00
parent 015d8bb38a
commit 50b1db1e8b
2 changed files with 9 additions and 9 deletions

View File

@ -423,7 +423,7 @@ struct Conj{
svbool_t pg_odd = acle<T>::pg_odd();
typename acle<T>::vt a_v = svld1(pg1, a.v);
//typename acle<T>::vt r_v = svneg_x(pg_odd, a_v);
typename acle<T>::vt r_v = svneg_m(pg_odd, a_v);
typename acle<T>::vt r_v = svneg_m(a_v, pg_odd, a_v);
svst1(pg1, out.v, r_v);
return out;
@ -443,7 +443,7 @@ struct TimesMinusI{
typename acle<T>::svuint tbl_swap_v = svld1(pg1, tbl_swap.v);
typename acle<T>::vt a_v = svld1(pg1, a.v);
a_v = svtbl(a_v, tbl_swap_v);
typename acle<T>::vt r_v = svneg_m(pg_odd, a_v);
typename acle<T>::vt r_v = svneg_m(a_v, pg_odd, a_v);
svst1(pg1, out.v, r_v);
return out;
@ -464,7 +464,7 @@ struct TimesI{
typename acle<T>::vt a_v = svld1(pg1, a.v);
a_v = svtbl(a_v, tbl_swap_v);
//typename acle<T>::vt r_v = svneg_x(pg_even, a_v);
typename acle<T>::vt r_v = svneg_m(pg_even, a_v);
typename acle<T>::vt r_v = svneg_m(a_v, pg_even, a_v);
svst1(pg1, out.v, r_v);
return out;

View File

@ -385,13 +385,13 @@ struct Conj{
inline vecf operator()(vecf a){
pred pg_odd = acle<float>::pg_odd();
//return svneg_x(pg_odd, a);
return svneg_m(pg_odd, a);
return svneg_m(a, pg_odd, a);
}
// Complex double
inline vecd operator()(vecd a){
pred pg_odd = acle<double>::pg_odd();
//return svneg_x(pg_odd, a);
return svneg_m(pg_odd, a);
return svneg_m(a, pg_odd, a);
}
};
@ -404,7 +404,7 @@ struct TimesMinusI{
vecf a_v = svtbl(a, tbl_swap);
//return svneg_x(pg_odd, a_v);
return svneg_m(pg_odd, a_v);
return svneg_m(a_v, pg_odd, a_v);
}
// Complex double
inline vecd operator()(vecd a, vecd b){
@ -414,7 +414,7 @@ struct TimesMinusI{
vecd a_v = svtbl(a, tbl_swap);
//return svneg_x(pg_odd, a_v);
return svneg_m(pg_odd, a_v);
return svneg_m(a_v, pg_odd, a_v);
}
};
@ -427,7 +427,7 @@ struct TimesI{
vecf a_v = svtbl(a, tbl_swap);
//return svneg_x(pg_even, a_v);
return svneg_m(pg_even, a_v);
return svneg_m(a_v, pg_even, a_v);
}
// Complex double
inline vecd operator()(vecd a, vecd b){
@ -437,7 +437,7 @@ struct TimesI{
vecd a_v = svtbl(a, tbl_swap);
//return svneg_x(pg_even, a_v);
return svneg_m(pg_even, a_v);
return svneg_m(a_v, pg_even, a_v);
}
};