GCC maintainers:

The code generated by using C-code to set a vector element versus using a built-in has been investigated.  The assembly code generated from the C-code is as good or better than the assembly code generated for the built-ins for both the -O0 and -O3 levels of optimization.

For the vec_insert built-in bif whose resolving makes use of the vec_set bif previously, is now removed, is as good as before with optimization.

This two patch series removes the __builtin_vec_set_v1ti, __builtin_vec_set_v2df, __builtin_vec_set_v2di and  built-ins __builtin_vsx_set_1ti,  __builtin_vsx_set_2df, __builtin_vsx_set_2di built-ins in favor of using C-code instead.  The built-ins use the built-in set attribute in the definitions of the built-ins.  With the removal of these 6 built-ins, the set built-in attribute is no longer used and the related code for the attribute is removed.

The patch, first patch in this series, to remove the __builtin_vec_set_v1ti, __builtin_vec_set_v2df, __builtin_vec_set_v2di was previously posted.  The feedback on the patch was that we could also remove set bif attribute.  Removal of the set bif attribute requires also removing the __builtin_vsx_set_1ti,  __builtin_vsx_set_2df, __builtin_vsx_set_2di built-ins.  The second patch removes the vsx set built-ins and the now no longer used set built-in attribute and associated code.

The patches have been tested on a Power 10 LE system with no regressions.

Carl

Reply via email to