[Bug tree-optimization/56223] New: Integer ABS is not recognized for more complicated pattern

ysrumyan at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Feb 6 11:40:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56223

             Bug #: 56223
           Summary: Integer ABS is not recognized for more complicated
                    pattern
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: ysrumyan@gmail.com


In one important benchmark the following ABS pattern which is not recognized by
gcc was found:

   if (x >= 0)
      s += x;
   else
      s -= x;
that certainly should be converted to ABS as e.g. icc does.

In result the loop containing this pattern is not vectorized on x86 and arm.

I attached simple test-case to reproduce it.

If we complile it for atom with options " -O3 -m32 -march=atom2 -mtune=atom2
-ffast-math -msse2 -mfpmath=sse -ftree-vectorizer-verbose=2" we got:

...
t5.c:1: note: vectorized 0 loops in function.
...
t5.c:15: note: vectorized 1 loops in function.



More information about the Gcc-bugs mailing list