]> gcc.gnu.org Git - gcc.git/commit
LoongArch: Split vec_selects of bottom elements into simple move
authorJiahao Xu <xujiahao@loongson.cn>
Tue, 16 Jan 2024 02:23:20 +0000 (10:23 +0800)
committerLulu Cheng <chenglulu@loongson.cn>
Fri, 26 Jan 2024 08:21:47 +0000 (16:21 +0800)
commite3a9b77d732de83877a9ed5914e6d429a65e0bf7
tree9ab354072f023fd52a14ad20799f713291f9cb44
parentdddafe948230b4895f8d4371eee7996fb2dba44a
LoongArch: Split vec_selects of bottom elements into simple move

For below pattern, can be treated as a simple move because floating point
and vector share a common register on loongarch64.

(set (reg/v:SF 32 $f0 [orig:93 res ] [93])
      (vec_select:SF (reg:V8SF 32 $f0 [115])
          (parallel [
                  (const_int 0 [0])
              ])))

gcc/ChangeLog:

* config/loongarch/lasx.md (vec_extract<mode>_0):
New define_insn_and_split patten.

gcc/testsuite/ChangeLog:

* gcc.target/loongarch/vect-extract.c: New test.
gcc/config/loongarch/lasx.md
gcc/testsuite/gcc.target/loongarch/vect-extract.c [new file with mode: 0644]
This page took 0.056905 seconds and 5 git commands to generate.