IBM Support

LI78456: COMPILER SHOULD USE XXLOR INSTEAD OF XVCPSGND WHEN USING -QARCH=PWR8

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • xlC compiler uses xvcpsgnd (6cycle) instead of xxlor (2cycle) if
    compiling for POWER 8 for the following test case:
    
    ===== COMPILE COMMAND:
    xlC -c -O2 -q64 -qlist -qarch=pwr8 -qaltivec -qtune=pwr8
    test.cpp
    
    ===== TESTCASE:
    $ cat test.cpp
    double fsel(double a, double b, double c, double d)
    {
      return a < b ? c : d;
    }
    $
    
    
    ===== ACTUAL OUTPUT:
         | 000000                           PDEF     fsel(double,
    double, double, double)
         | 000000                           AKA       fsel__FdN31
        1|                                  PROC
    a,b,c,d,vs1-vs4
        3| 000000 xscmpudp F0011118   1     CFL       cr0=vs1,vs2
        3| 000004 bc       4080000C   0     BF
    CL.2,cr0,0x20/flt,taken=50%(0,0)
        3| 000008 xvcpsgnd F0231F80   2     LRVS      vs1=vs3
        0| 00000C bclr     4E800020   0     BA        lr
        3|                              CL.2:
        3| 000010 xvcpsgnd F0242780   1     LRVS      vs1=vs4
        4| 000014 bclr     4E800020   0     BA        lr
         |               Tag Table
         | 000018        00000000 00092200 00000000 00000018
         |               Instruction count            6
         |               Straight-line exec time      4
    
    
    
    ===== EXPECTED OUTPUT:
    Compiler should use xxlor instead of xvcpsgnd
    

Local fix

  • N/A
    

Problem summary

  • USERS AFFECTED:
    Users who use -qalitvec on POWER 8 may be affected by this
    issue.
    
    PROBLEM DESCRIPTION:
    Compiler uses xvcpsgnd instead of xxlor which may result in
    less optimal runtime performance.
    

Problem conclusion

  • Compiler has been changed to use xxlor instead of  xvcpsgnd if
    compiling for POWER 8.
    

Temporary fix

Comments

APAR Information

  • APAR number

    LI78456

  • Reported component name

    XL C/C++ FOR LI

  • Reported component ID

    5725C7300

  • Reported release

    D10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-02-25

  • Closed date

    2015-02-25

  • Last modified date

    2015-02-25

  • APAR is sysrouted FROM one or more of the following:

    IV67336

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    XL C/C++ FOR LI

  • Fixed component ID

    5725C7300

Applicable component levels

  • RD10 PSY

       UP



Document information

More support for: XL C/C++ for Linux
Compiler

Software version: 13.1

Reference #: LI78456

Modified date: 25 February 2015