]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000, Remove __builtin_vec_set_v1ti, __builtin_vec_set_v2df, __builtin_vec_set_v2di
authorCarl Love <cel@linux.ibm.com>
Tue, 9 Jul 2024 18:53:33 +0000 (14:53 -0400)
committerCarl Love <cel@linux.ibm.com>
Thu, 25 Jul 2024 22:58:49 +0000 (18:58 -0400)
commit9ecf36b6f1d0688af5b69815e0244ea5118900dc
tree5249f17c46a2b81c31d206f5d1c6244a294e41b0
parent6689c587412547a995b81dce2cc2954dda98df59
rs6000, Remove __builtin_vec_set_v1ti, __builtin_vec_set_v2df, __builtin_vec_set_v2di

This patch removes the __builtin_vec_set_v1ti, __builtin_vec_set_v2df
and __builtin_vec_set_v2di built-ins.  The users should just use
normal C-code to update the various vector elements.  This change was
originally intended to be part of the earlier series of cleanup
patches.  It was initially thought that some additional work would be
needed to do some gimple generation instead of these built-ins.
However, the existing default code generation does produce the needed
code.    For the vec_set bif, the equivalent C code is as good or
better than the built-in.  For the vec_insert bif whose resolving
previously made use of the vec_set bif, the assembly code generation
is as good as before with the -O3 optimization.

Remove the built-ins, use the default gimple generation instead.

gcc/ChangeLog:
* config/rs6000/rs6000-builtins.def (__builtin_vec_set_v1ti,
__builtin_vec_set_v2df, __builtin_vec_set_v2di): Remove built-in
definitions.
* config/rs6000/rs6000-c.cc (resolve_vec_insert): Remove the
handling for constant vec_insert position with
VECTOR_UNIT_VSX_P V1TImode, V2DFmode and V2DImode modes.
gcc/config/rs6000/rs6000-builtins.def
gcc/config/rs6000/rs6000-c.cc