[llvm-bugs] [Bug 50905] New: slow code for absolute value of int8 x 16 vector on POWER9 at -O3

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Jun 26 17:57:29 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=50905

            Bug ID: 50905
           Summary: slow code for absolute value of int8 x 16 vector on
                    POWER9 at -O3
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: PowerPC
          Assignee: unassignedbugs at nondot.org
          Reporter: clang at evan.coeusgroup.com
                CC: llvm-bugs at lists.llvm.org, nemanja.i.ibm at gmail.com

On POWER8 and below, this code generates the same code as vec_abs, but on
POWER9 the generate code is quite terrible.  Compile with -mcpu=power9 -O3. 
Example (or on Compiler Explorer: https://godbolt.org/z/avnTxh9M6):


#include <stdint.h>

typedef int8_t i8x16 __attribute__((__vector_size__(16)));

i8x16
i8x16_abs(i8x16 a) {
    i8x16 r;

    for (int i = 0 ; i < 16 ; i++) {
        r[i] = (a[i] < 0) ? -a[i] : a[i];
    }

    return r;
}


LLVM-MCA says RThroughput is 8, vs 1.5 for the POWER8 version.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210627/a3e338a4/attachment.html>


More information about the llvm-bugs mailing list