IBM Support

IV07685: QSIMD=AUTO CAUSING ERROR FOR QARCH=PWR7

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When compiling the following test case with -qsimd=auto and
    targeting the POWER7 architecture with -qarch=pwr7, the compiler
    is encountering an internal error when -qnostrict is enabled
    
    The -qnostrict option is enabled automatically when compiling
    with -O3, or can be set manually at -O2.  The -qnostrict
    suboptions causing the issue are
    -qstrict=noprecision:noexceptions
    
    
    
       ======  TEST CASE  ======
    
    SUBROUTINE test (arr, A, B, num)
    IMPLICIT NONE
    
    Integer, intent(in) :: num
    Real, intent(in)    :: A(num), B(num)
    Real, intent(out)   :: arr(num)
    
    Real :: result1, result2
    
    Integer :: I, II
    
    Do i = 1, num-1,2
    
      result1 = 1.0+1.0*B(I) * (1.0+1.0*(A(I)-0) * (A(I)-0))
      result2 = 1.0+1.0*B(I+1) * (1.0+1.0*(A(I+1)-0) * (A(I+1)-0))
    
      arr(I)   = arr(I)   * result1
      arr(I+1) = arr(I+1) * result2
    
      arr(I)   = (1*arr(I)) / (MAX(B(I),1.0*arr(I))-arr(I))
      arr(I+1) = (1*arr(I+1)) / (MAX(B(I+1),1.0*arr(I+1))-arr(I+1))
    
    End Do
    
    RETURN
    END SUBROUTINE test
    
    
       ======  COMPILE  ======
    $ xlf90_r -q64 -qrealsize=8 -c -qsimd=auto -O2 -qhot -qarch=pwr7
    -qstrict=noprecision:noexceptions test.f90
    ** test   === End of Compilation 1 ===
    "test.f90", 1500-004 (U) INTERNAL COMPILER ERROR while compiling
    test.  Compilation ended.  Contact your Service Representative
    and provide the following information: Internal abort. For more
    information visit:
    http://www.ibm.com/support/docview.wss?uid=swg21110810
    1586-346 (U) An error occurred during code generation.  The code
    generation return code was 1.
    1501-511  Compilation failed for file test.f90.
    $
    

Local fix

  • Any one of the following options may work around the issue:
    
    - Compile with -qsimd=noauto
    - Compile with -qnohot
    - Compile for POWER6 instead with -qarch=pwr6
    - Compile explicitly with -qstrict
    - Move the order of your code around.  This issue appears to be
    sensitive to code position.
    

Problem summary

  • USERS AFFECTED:
    Users who compile with -qsimd=auto at -O2 may encounter this
    issue.
    
    PROBLEM DESCRIPTION:
    -qsimd=auto makes use of vector RCP instructions which the
    compiler was taught how to handle.
    As a result, the compiler produced an internal compiler error.
    

Problem conclusion

  • The compiler has been fixed to support vector RCP instructions
    and no longer produces an internal compiler error.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV07685

  • 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

    2011-09-14

  • Closed date

    2011-11-02

  • Last modified date

    2011-11-03

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

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

    LI76619

Fix information

  • Fixed component name

    XL FORTRAN FOR

  • Fixed component ID

    5724X1500

Applicable component levels

  • RD10 PSY U848520

       UP A

[{"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:
03 November 2011