-
- Downloads
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.
Showing
- gcc/config/loongarch/lasx.md 65 additions, 17 deletionsgcc/config/loongarch/lasx.md
- gcc/config/loongarch/loongarch-protos.h 1 addition, 0 deletionsgcc/config/loongarch/loongarch-protos.h
- gcc/config/loongarch/loongarch.cc 137 additions, 0 deletionsgcc/config/loongarch/loongarch.cc
- gcc/config/loongarch/loongarch.md 2 additions, 0 deletionsgcc/config/loongarch/loongarch.md
- gcc/testsuite/gcc.target/loongarch/vect-widen-add.c 24 additions, 0 deletionsgcc/testsuite/gcc.target/loongarch/vect-widen-add.c
- gcc/testsuite/gcc.target/loongarch/vect-widen-mul.c 24 additions, 0 deletionsgcc/testsuite/gcc.target/loongarch/vect-widen-mul.c
- gcc/testsuite/gcc.target/loongarch/vect-widen-sub.c 24 additions, 0 deletionsgcc/testsuite/gcc.target/loongarch/vect-widen-sub.c
Loading
Please register or sign in to comment