1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-04-10 14:10:46 +01:00

replaced _x form with _m form when using even/odd predication

This commit is contained in:
nmeyer-ur 2020-05-14 23:17:35 +02:00
parent d15ccad8a7
commit db8c0e7584
2 changed files with 22 additions and 14 deletions

View File

@ -422,7 +422,8 @@ struct Conj{
svbool_t pg1 = acle<T>::pg1();
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_x(pg_odd, a_v);
typename acle<T>::vt r_v = svneg_m(pg_odd, a_v);
svst1(pg1, out.v, r_v);
return out;
@ -442,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_x(pg_odd, a_v);
typename acle<T>::vt r_v = svneg_m(pg_odd, a_v);
svst1(pg1, out.v, r_v);
return out;
@ -462,7 +463,8 @@ struct TimesI{
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_x(pg_even, a_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);
svst1(pg1, out.v, r_v);
return out;

View File

@ -384,12 +384,14 @@ struct Conj{
// Complex float
inline vecf operator()(vecf a){
pred pg_odd = acle<float>::pg_odd();
return svneg_x(pg_odd, a);
//return svneg_x(pg_odd, a);
return svneg_m(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_x(pg_odd, a);
return svneg_m(pg_odd, a);
}
};
@ -401,7 +403,8 @@ struct TimesMinusI{
pred pg_odd = acle<float>::pg_odd();
vecf a_v = svtbl(a, tbl_swap);
return svneg_x(pg_odd, a_v);
//return svneg_x(pg_odd, a_v);
return svneg_m(pg_odd, a_v);
}
// Complex double
inline vecd operator()(vecd a, vecd b){
@ -410,7 +413,8 @@ struct TimesMinusI{
pred pg_odd = acle<double>::pg_odd();
vecd a_v = svtbl(a, tbl_swap);
return svneg_x(pg_odd, a_v);
//return svneg_x(pg_odd, a_v);
return svneg_m(pg_odd, a_v);
}
};
@ -422,7 +426,8 @@ struct TimesI{
pred pg_even = acle<float>::pg_even();
vecf a_v = svtbl(a, tbl_swap);
return svneg_x(pg_even, a_v);
//return svneg_x(pg_even, a_v);
return svneg_m(pg_even, a_v);
}
// Complex double
inline vecd operator()(vecd a, vecd b){
@ -431,7 +436,8 @@ struct TimesI{
pred pg_even = acle<double>::pg_even();
vecd a_v = svtbl(a, tbl_swap);
return svneg_x(pg_even, a_v);
//return svneg_x(pg_even, a_v);
return svneg_m(pg_even, a_v);
}
};