Fixes are available
XL C/C++ for AIX Fix Pack 3 (April 2015 PTF) for 13.1
XL C/C++ for AIX Fix Pack 4 (July 2015 PTF) for 13.1
XL C for AIX Fix Pack 5 (November 2015 Update) for 13.1
XL C/C++ for AIX Fix Pack 5 (November 2015 PTF) for 13.1
XL C/C++ for AIX Fix Pack 6 (February 2016 PTF) for 13.1
XL C for AIX Fix Pack 6 (February 2016 Update) for 13.1
XL C for AIX Fix Pack 7 (May 2016 Update) for 13.1
XL C/C++ for AIX Fix Pack 7 (May 2016 PTF) for 13.1
XL C for AIX Fix Pack 8 (August 2016 Update) for 13.1
XL C/C++ for AIX Fix Pack 8 (August 2016 PTF) for 13.1
XL C for AIX Fix Pack 9 (June 2017 Update) for 13.1
XL C/C++ for AIX Fix Pack 9 (June 2017 PTF) for 13.1
XL C for AIX Fix Pack 10 (February 2018 Update) for 13.1
XL C/C++ for AIX Fix Pack 10 (February 2018 PTF) for 13.1
XL C for AIX Fix Pack 3 (April 2015 PTF) for 13.1
XL C for AIX Fix Pack 4 (July 2015 PTF) for 13.1
XL C/C++ for AIX Fix Pack 11 (November 2018 PTF) for 13.1
XL C for AIX Fix Pack 11 (November 2018) for 13.1
APAR status
Closed as program error.
Error description
When compiling code that looks similar to the following: void store16(vector unsigned char v, char* p) { return __vec_strmb(p, 16, v); } the compiler generates a listing that looks similar to the following: __vec_strmb(p, 16, v): | 000000 PDEF store16(vector unsigned char, char *) | 000000 AKA store16__FacPc 58| PROC v,p,vs34,gr3 60| 000154 addi 38000010 1 LI gr0=16 60| 000158 lvx 7C2300CE 1 VLQ vs33=(char)(gr3,gr0,0) 60| 00015C lvx 7C6018CE 1 VLQ vs35=(char)(gr3,0) 60| 000160 lvsr 7C80184C 1 LVSR vs36=(char)(gr3,0) 60| 000164 xxlxor F00004D7 1 VXOR vs32=vs32,vs32 60| 000168 vspltisb 10BF030C 1 VSPLTISB vs37=-1 60| 00016C vperm 10C0292B 1 VPERM vs38=vs32,vs37,vs36 60| 000170 vperm 1042112B 1 VPERM vs34=vs34,vs34,vs36 60| 000174 vperm 1005012B 1 VPERM vs32=vs37,vs32,vs36 60| 000178 xxsel F001103F 1 VSEL vs32=vs33,vs34,vs32 60| 00017C xxsel F02311BF 1 VSEL vs33=vs35,vs34,vs38 60| 000180 stvx 7C2019CE 1 VSTQ (char)(gr3,0)=vs33 60| 000184 stvx 7C0301CE 1 VSTQ (char)(gr3,gr0,0)=vs32 61| 000188 bclr 4E800020 0 BA lr The expected output in the listings is to have single stvd2x.
Local fix
N/A
Problem summary
USERS AFFECTED: Users who use the __vec_strmb() builtin may be affected by this issue. PROBLEM DESCRIPTION: When observing the listing file generated for the __vec_strmb() section, the compiler generates unnecessary stvd2x instructions.
Problem conclusion
The compiler has been changed to not produce the unnecessary stvd2x instructions anymore.
Temporary fix
Comments
APAR Information
APAR number
IV68828
Reported component name
XL C/C++ FOR AI
Reported component ID
5725C7200
Reported release
D10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2015-01-21
Closed date
2015-04-28
Last modified date
2015-04-28
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
5725C7100
Applicable component levels
Document Information
Modified date:
19 August 2024