rs6000, built-in cleanup patch series
GCC maintainers: The following series of patches cleanup some of the rs6000 built-in support. Some of the first patches fix errors in the definition of a few of the built-ins. The built-ins are supposed to have unsigned arguments but are listed as signed. Some of the built-ins are supposed to return unsigned values but were defined to return a signed value. There are a number of built-ins that are not documented but are duplicates of other documented built-ins. The duplicate definitions are removed so users will only use the supported documented built-ins. There are a number of the built-ins that are not documented in either the Power Vector Intrinsic Reference manual or in the gcc/doc/extend.texi file. The patch adds the missing documentation as needed. Also most of the built-ins do not have test cases. The patch adds test cases for the various built-ins. Carl
[PATCH 0/13] rs6000, built-in cleanup patch series
GCC maintainers: The following patch series removes duplicate built-ins. There are patches to extend an existing overloaded built-in to cover additional input types. The final patch removes built-ins to set and initialize vectors. The code generated by these built-ins with the default optimization is efficient than the code generated by using straight C code. The assembly code for the built-in and straight C code is the same with -O3 optimizations. In this case, the built-ins are removed as they add no additional value. The patches have all been tested on Power 10 LE. The last patch was also tested on Power 8 BE. No regression tests were seen. Please let me know if the patches are acceptable for mainline. Thanks. Carl
[PATCH 0/13 ver4] rs6000, built-in cleanup patch series
GCC maintainers: I have addressed the comments to the five patches in the series that have not yet been approved. The patches that have already been approved are 1, 3, 5, 6, 8, 9, 10, and 12. The remaining patches all have fairly minor fixes requested. I will just post version 4 of these patches here. The goal is to commit the entire series all at once as they are all related. So I a holding off committing the approved patches. Thank you for your time and feedback of these patches. The entire patch series has been tested on Power 10 LE, Power 9 BE with no regression failures. Carl
[PATCH 0/13 ver5] rs6000, built-in cleanup patch series
GCC maintainers: The following is the updates to the three patches that have yet to be approved. Patches 1, 3, 5, 6, 8, 9, 10, and 12 were approved in the version 3 or earlier. Patches 7 and 11 from version 4 were approved with minor nits fixed. This leaves patches 2, 4 and 13 still to be approved. Only these unapproved patches are posted in the version 5 series. The goal is to commit the entire series all at once as they are all related. So I a holding off committing the approved patches. Thank you for your time and feedback of these patches. The entire patch series has been tested on Power 10 LE as the changes are fairly minor. Please let me know if the remaining patches are acceptable for mainline. Thanks. Carl
[PATCH 0/13 ver 3] rs6000, built-in cleanup patch series
GCC maintainers: The following is an updated patch series to remove duplicate built-ins. There are patches to extend an existing overloaded built-in to cover additional input types. A new patch, 0005-rs6000-Remove-redundant-float-double-type-conversion.patch, was added to remove built-ins that were inadvertently missing in the last version. Patch 12 patch in the previous series was dropped as the built-in __builtin_vsx_xvcmpeqsp is not a duplicate of the overloaded vec_cmpeq built-in. Specifically, the return values are different. The goal in this series is to remove built-ins that are functionally equivalent. Patch 12 from the previous series will be reworked and submitted later. Some of the patches in the previous series were approved, but everything is being reposted for completeness. The following gives the mapping of the patches from the previous version to the current version of the series with notes on the patches. Version 2 Version 3 Notes patch 1 patch 1 Approved, no changes patch 2 patch 2 Responded to comments, no changes to the patch patch 3 patch 3 Updated changelog, no functional changes patch 4 patch 4 Updated patch patch 5 New patch to removed built-ins missed in the series. patch 5 patch 6 Updated patch patch 6 patch 7 Updated patch patch 7 patch 8 Updated patch patch 8 patch 9 Approved, no changes to this patch patch 9 patch 10Approved, no changes to this patch patch 10patch 11Updated, added test file. patch 11patch 12Updated patch 12Patch from previous series removed patch 13patch 13Comments said built-ins __builtin_vec_set_v1ti __builtin_vec_set_v2di, __builtin_vec_set_v2df can also get removed with equivalent gimple codes. This is somewhat more involved than a simple removal of redundant built-ins. The built-ins will be removed in a separate future patch. The patch series has been tested on Power 10 LE, Power 9 BE with no regression failures. in additional patch The patches have all been tested on Power 10 LE. The last patch was also tested on Power 8 BE. No regression tests were seen. Please let me know if the patches are acceptable for mainline. Thanks. Carl
[PING} Re: [PATCH 0/13] rs6000, built-in cleanup patch series
Ping, just wondering if anyone has had a chance to look at the patch series. Thanks. Carl On 4/19/24 14:04, Carl Love wrote: > GCC maintainers: > > The following patch series removes duplicate built-ins. There are patches to > extend an existing overloaded built-in to cover additional input types. The > final patch removes built-ins to set and initialize vectors. The code > generated by these built-ins with the default optimization is efficient than > the code generated by using straight C code. The assembly code for the > built-in and straight C code is the same with -O3 > optimizations. In this case, the built-ins are removed as they add no > additional value. > > The patches have all been tested on Power 10 LE. The last patch was also > tested on Power 8 BE. > > No regression tests were seen. > > Please let me know if the patches are acceptable for mainline. Thanks. > >Carl >