]> git.ipfire.org Git - thirdparty/gcc.git/commit
LoongArch: Simplify lsx_vpick description
authorXi Ruoyao <xry111@xry111.site>
Tue, 11 Feb 2025 18:42:58 +0000 (02:42 +0800)
committerXi Ruoyao <xry111@xry111.site>
Wed, 19 Feb 2025 06:34:45 +0000 (14:34 +0800)
commit7dda6715126c0c5aedbd5f2e4056adf43bb4ea2a
tree0cb38772c506111ea0abedee93c97ca334b3aa55
parentf727a4c57ec9f9ea628f6d330be513f01c318a61
LoongArch: Simplify lsx_vpick description

Like what we've done for {lsx_,lasx_x}v{add,sub,mul}l{ev,od}, use
special predicates instead of hard-coded const vectors.

This is not suitable for LASX where lasx_xvpick has a different
semantic.

gcc/ChangeLog:

* config/loongarch/simd.md (LVEC): New define_mode_attr.
(simdfmt_as_i): Make it same as simdfmt for integer vector
modes.
(_f): New define_mode_attr.
* config/loongarch/lsx.md (lsx_vpickev_b): Remove.
(lsx_vpickev_h): Remove.
(lsx_vpickev_w): Remove.
(lsx_vpickev_w_f): Remove.
(lsx_vpickod_b): Remove.
(lsx_vpickod_h): Remove.
(lsx_vpickod_w): Remove.
(lsx_vpickev_w_f): Remove.
(lsx_pick_evod_<mode>): New define_insn.
(lsx_<x>vpick<ev_od>_<simdfmt_as_i><_f>): New
define_expand.
gcc/config/loongarch/lsx.md
gcc/config/loongarch/simd.md