[Bug tree-optimization/114120] add reduction with promotion and then truncation poorly vectorized

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 27 08:26:20 GMT 2024


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2024-02-27
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think I've seen a duplicate for this.  We lack a pass replacing an IV
(a PHI) based on how that is used outside of the loop.  Basically we fail
to treat PHIs transparently when folding conversions.  This _might_ be sth
for IVCANON since I think it doesn't really fit any other pass.

It also came up in the context of 

int f (unsigned *src)
{
  int sum = 0;
  for (int y = 0; y < 8; y++)
        {
                sum += src[y];
        }
  return sum;
}

which we handle fine in vectorization but still the reduction could be
done in 'unsigned' all the way through (and that conversion handling in
the vectorizer reduction code is somewhat ugly).


More information about the Gcc-bugs mailing list