Fixes are available
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/C++ for AIX, V11.1
October 2012 PTF for XL 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
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
Consider the following testcase: $cat testsig.C: ///////////////////////////////////////////////// #include <builtins.h> bool testSig(_Decimal128 dfp) { bool res = false; if (__d128_test_significance(dfp, 31ULL) > 0) res = true; return res; } ///////////////////////////////////////////////// Compile using the following command: $ xlC -O2 -qarch=pwr6 -qdfp -qlist -q64 -c testsig.C Resulting listing points to inefficiency in __d128_test_significance implementation. | 000000 PDEF testSig(_Decimal128) | 000000 AKA testSig__FDr 0| PROC dfp,fp2,fp3 7| 000000 addi 3800001F 1 LI gr0=31 7| 000004 std F801FFF0 1 ST8 MX_CONVF1_0(gr1,-16)gr0 7| 000008 lfd C801FFF0 1 LDFL p0=#MX_CONVF1_0(gr1,16) 7| 00000C dtstexq FC001544 1 CDFSE r0=fp2,fp3,fp0 7| 000010 bc 40800018 1 BFL.9,cr0,0x20/flt, taken=50%(0,0) 7| 000014 addi 38000001 1 LI gr0=1 7| 000018 addi 3860FFFF 1 LI gr3=-1 7| 00001C andc 7C600078 1 ANDC gr0=gr3,gr0 7| 000020 rldicl 78030FE0 1 SRL8 gr3=gr0,63 0| 000024 bclr 4E800020 1 BA lr 0| CL.9: 7| 000028 bc 41820024 1 BT CL.12,cr0,0x80/feq, taken=40%(40,60) 7| 00002C bc 40810018 1 BF CL.11,cr0,0x40/fgt, taken=30%(30,70) 7| 000030 addi 3800FFFF 1 LI gr0=-1 7| 000034 addi 38600001 1 LI gr3=1 7| 000038 andc 7C600078 1 ANDC gr0=gr3,gr0 7| 00003C rldicl 78030FE0 1 SRL8 gr3=gr0,63 0| 000040 bclr 4E800020 1 BA lr 0| CL.11: 7| 000044 addi 38600000 1 LI gr3=0 11| 000048 bclr 4E800020 1 BA lr 0| CL.12: 7| 00004C addi 38000000 1 LI gr0=0 7| 000050 addi 38600000 1 LI gr3=0 7| 000054 andc 7C600078 1 ANDC gr0=gr3,gr0 7| 000058 rldicl 78030FE0 1 SRL8 gr3=gr0,63 0| 00005C bclr 4E800020 1 BA lr 4 branches are generated, but potentially it could be implemented with only 1 branch.
Local fix
N/A
Problem summary
DFP optimization opportunity with test significance compare greater than zero
Problem conclusion
Fix is provided
Temporary fix
Comments
APAR Information
APAR number
IV10810
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
2011-11-16
Closed date
2012-01-10
Last modified date
2012-01-10
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
Document Information
Modified date:
10 January 2012