Fixes are available
January 2011 PTF for XL C/C++ for AIX, V11.1
May 2011 PTF for XL C for AIX, V11.1
May 2011 PTF for XL C/C++ for AIX, V11.1
August 2011 PTF for XL C/C++ for AIX, V11.1
November 2011 PTF for XL C/C++ for AIX, V11.1
January 2012 PTF for XL C for AIX, V11.1
January 2012 PTF for XL C/C++ for AIX, V11.1
April 2012 PTF for XL C for AIX, V11.1
April 2012 PTF for XL C/C++ for AIX, V11.1
July 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C for AIX, V11.1
October 2012 PTF for XL C/C++ for AIX, V11.1
February 2013 PTF for XL C for AIX, V11.1
February 2013 PTF for XL C/C++ for AIX, V11.1
XL C/C++ for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 22 (September 2015 PTF) for 11.1
XL C for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C for AIX Fix Pack 24 (September 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 24 (September 2016 PTF) for 11.1
January 2011 PTF for XL C for AIX, V11.1
August 2011 PTF for XL C for AIX, V11.1
November 2011 PTF for XL C for AIX, V11.1
July 2012 PTF for XL C for AIX, V11.1
XL C for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 22 (September 2015 PTF) for 11.1
APAR status
Closed as program error.
Error description
**************************************************************** * Floating point expressions of the form: * * * * a - b * c * * -(a - b * c) * * * * are returning results that differ by a small margin in the * * least significant digit, as compared to results from other * * versions and releases of the XL compilers. * ****************************************************************
Local fix
**************************************************************** * Applications compiled with affected compiler versions and a * * minimum optimization level of -O2 can workaround the issue * * by adding the compile option -qstrict=noieeefp. * ****************************************************************
Problem summary
**************************************************************** *USERS AFFECTED: * * Those compiling applications that use floating point * * arithmetic in the form outlined in the error description. * * Affected compiler versions are XL C/C++ for AIX, V11.1.0.0 - * * V11.1.0.3 and XL Fortran V13.1.0.0 - V13.1.0.3. * **************************************************************** *PROBLEM DESCRIPTION: * * The result difference was caused by a change to the * * instructions generated by the compiler for calculations of * * the form ' a - b * c '. Generated code utilizes fmul and * * fsub instructions instead of the single fused * * multiply/subtract fnmsub instruction, which was used in * * other compiler versions. * * * * Depending on the input values, the rounding difference * * between these two instruction sequences can sometimes lead * * to small differences in the least significant digit of the * * result. The difference is within standard rounding * * tolerances, however code that has a strict reliance on the * * presence of the fnmsub instruction and it's rounding * * properties may be affected in more significant ways. * **************************************************************** *RECOMMENDATION: * * The issue was corrected via APAR in the XLC V11.1.0.4 PTF * * (IZ88082) and XLF V13.1.0.4 PTF (IZ91502). It is * * recommended to use the latest PTF release of the compiler. * ****************************************************************
Problem conclusion
**************************************************************** * The compiler code generation was reverted back to use the * * fnmsub instruction by default, effectively restoring the * * previous rounding behaviour. * ****************************************************************
Temporary fix
Comments
APAR Information
APAR number
IZ88082
Reported component name
XL C/C++ AIX
Reported component ID
5724X1300
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2010-11-02
Closed date
2015-01-07
Last modified date
2015-01-07
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL C FOR AIX
Fixed component ID
5724X1200
Applicable component levels
RB10 PSY
UP
Document Information
Modified date:
06 October 2021