[Bug tree-optimization/55723] SLP vectorization vs loop: SLP more efficient: loop vectorization inefficient in presence of multiple "blends"
vincenzo.innocente at cern dot ch
gcc-bugzilla@gcc.gnu.org
Mon Dec 17 19:26:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55723
vincenzo Innocente <vincenzo.innocente at cern dot ch> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|SLP vectorization vs loop: |SLP vectorization vs loop:
|SLP more efficient! |SLP more efficient: loop
| |vectorization inefficient
| |in presence of multiple
| |"blends"
--- Comment #1 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2012-12-17 19:25:37 UTC ---
moving the second blending before the polynomial makes the two loops to
produce almost identical code
This is not always possible though.
Bug in the loop optimizer?
template<typename Float>
inline
Float atan(Float t) {
constexpr float PIO4F = 0.7853981633974483096f;
constexpr Float zero = {0};
Float z= (t > 0.4142135623730950f) ? (t-1.0f)/(t+1.0f) : t;
Float ret = ( t > 0.4142135623730950f ) ? zero+PIO4F : zero;
Float z2 = z * z;
ret +=
((( 8.05374449538e-2f * z2
- 1.38776856032E-1f) * z2
+ 1.99777106478E-1f) * z2
- 3.33329491539E-1f) * z2 * z
+ z;
return ret;
}
More information about the Gcc-bugs
mailing list