diff options
author | Jiahao Xu <xujiahao@loongson.cn> | 2023-10-18 17:39:40 +0800 |
---|---|---|
committer | Lulu Cheng <chenglulu@loongson.cn> | 2023-10-19 14:15:35 +0800 |
commit | 08813894fd85c981772be1c274471d3d3241c9cb (patch) | |
tree | 9a4ae1312340475ba28ed218e4fcf7339a4afe72 /gcc/tree-vect-loop-manip.cc | |
parent | a7b7284fe1e15c365fc60ffb2151edd8fc0a7d7b (diff) | |
download | gcc-08813894fd85c981772be1c274471d3d3241c9cb.zip gcc-08813894fd85c981772be1c274471d3d3241c9cb.tar.gz gcc-08813894fd85c981772be1c274471d3d3241c9cb.tar.bz2 |
LoongArch:Implement vec_widen standard names.
Add support for vec_widen lo/hi patterns. These do not directly
match on Loongarch lasx instructions but can be emulated with
even/odd + vector merge.
gcc/ChangeLog:
* config/loongarch/lasx.md
(vec_widen_<su>mult_even_v8si): New patterns.
(vec_widen_<su>add_hi_<mode>): Ditto.
(vec_widen_<su>add_lo_<mode>): Ditto.
(vec_widen_<su>sub_hi_<mode>): Ditto.
(vec_widen_<su>sub_lo_<mode>): Ditto.
(vec_widen_<su>mult_hi_<mode>): Ditto.
(vec_widen_<su>mult_lo_<mode>): Ditto.
* config/loongarch/loongarch.md (u_bool): New iterator.
* config/loongarch/loongarch-protos.h
(loongarch_expand_vec_widen_hilo): New prototype.
* config/loongarch/loongarch.cc
(loongarch_expand_vec_interleave): New function.
(loongarch_expand_vec_widen_hilo): New function.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/vect-widen-add.c: New test.
* gcc.target/loongarch/vect-widen-mul.c: New test.
* gcc.target/loongarch/vect-widen-sub.c: New test.
Diffstat (limited to 'gcc/tree-vect-loop-manip.cc')
0 files changed, 0 insertions, 0 deletions