[PATCH 0/13 ver4] rs6000, built-in cleanup patch series

2024-06-13 Thread Carl Love
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 ver 3] rs6000, built-in cleanup patch series

2024-05-29 Thread Carl Love


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

2024-05-11 Thread Carl Love
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 
> 


[PATCH 0/13] rs6000, built-in cleanup patch series

2024-04-19 Thread Carl Love
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 



rs6000, built-in cleanup patch series

2024-02-20 Thread Carl Love
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