Fixes are available
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
LI76656
Reported component name
XL C/C++ FOR LI
Reported component ID
5724X1400
Reported release
B10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2012-02-06
Closed date
2012-02-06
Last modified date
2012-02-06
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/C++ FOR LI
Fixed component ID
5724X1400
Applicable component levels
RB10 PSN IV10810
UP06/09/13
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSXVZZ","label":"XL C\/C++ for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"B10","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
17 October 2021