IBM Support

IZ90712: SUPERFLUOUS EXTSW WITH POPCNT INTRINSIC

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When using the POPCNT compiler intrinsic, the Fortran
    compiler is generating an unnecessary sign extension EXTSW
    instruction when using 64-bit mode.
    
    
    =============== Example ================
    
    logical(4):: a4B
    integer(4):: r4B
    logical(8):: a8B
    integer(4):: r8B
    
    ...
    
    r4B = popcnt (a4B)
    r8B = popcnt (a8B)
    
       ----- Generated Code -----
    
     popcntw  7C0002F4   1     POPCNT4   gr0=gr0
     extsw    7C0007B4   1     EXTS4     gr0=gr0
     stw      90010074   1     ST4A      r4b(gr1,116)=gr0
    
     popcntd  7C0003F4   1     POPCNT8   gr0=gr0
     extsw    7C0007B4   1     EXTS4     gr0=gr0
     stw      90010080   1     ST4A      r8b(gr1,128)=gr0
    

Local fix

  • N/A
    

Problem summary

  • PROBLEM DESCRIPTION:
    In 64 bit mode, each POPCNT instruction was followed by an
    unneeded EXTS4 extend sign instruction.
    
    USERS AFFECTED:
    Users calling one of the __popcnt... built in functions.
    

Problem conclusion

  • EXTS4 is unneeded because POPCNT can only produce values from 0
    to 64, the sign bit can never be set, and extending it will
    leave the value unchanged.  EXTS4 after POPCNT is now
    discarded.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ90712

  • Reported component name

    XL FORTRAN FOR

  • Reported component ID

    5724X1500

  • Reported release

    D10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-12-13

  • Closed date

    2011-03-08

  • Last modified date

    2011-03-08

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

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

    LI75814

Fix information

  • Fixed component name

    XL FORTRAN FOR

  • Fixed component ID

    5724X1500

Applicable component levels

  • RD10 PSY U842152

       UP C

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGH4D","label":"XL Fortran for AIX"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"13.1","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
08 March 2011