https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126101

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The fast_{d,c,b,a} are not really reductions, fast_dir might be, but without
-ffast-math we cannot do any FP association.  With -ffast-math I see
discovery for

t.ii:60:40: note:     _50 = vdw_d_108 * _146;
t.ii:60:40: note:     _51 = vdw_c_109 * 2.5e-1;

and

t.ii:61:14: note:     _53 = _52 * diffa_98;
t.ii:61:14: note:     _54 = vdw_b_110 * 5.0e-1;

and

t.ii:72:41: note:     _62 = fast_d_114 * _146; 
t.ii:72:41: note:     _63 = fast_c_115 * 2.5e-1;

and

t.ii:73:14: note:     _65 = _64 * diffa_98;
t.ii:73:14: note:     _66 = fast_b_116 * 5.0e-1;

and

t.ii:77:16: note:     vdw_d_108 = _34 - _36;
t.ii:77:16: note:     fast_d_114 = _57 * kqq_104;

and more.  The vectorized SLP portions are not too big though.


How does oneAPI deal with the vdw_* uses in the fast_val computation,
how does it represent fast_{d,c,b,a}?  Does it build up / tear down
vectors at those boundaries to scalar code?

Reply via email to