aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop-manip.cc
diff options
context:
space:
mode:
authorJiahao Xu <xujiahao@loongson.cn>2023-10-18 17:39:40 +0800
committerLulu Cheng <chenglulu@loongson.cn>2023-10-19 14:15:35 +0800
commit08813894fd85c981772be1c274471d3d3241c9cb (patch)
tree9a4ae1312340475ba28ed218e4fcf7339a4afe72 /gcc/tree-vect-loop-manip.cc
parenta7b7284fe1e15c365fc60ffb2151edd8fc0a7d7b (diff)
downloadgcc-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