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