Commit graph

198695 commits

Author SHA1 Message Date
Ju-Zhe Zhong
8aa1e133b1 RISC-V: Add vwsubu.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsubu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vv_tumu-3.c: New test.
2023-02-12 13:58:41 +08:00
Ju-Zhe Zhong
9b18075489 RISC-V: Add vwsubu.vx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsubu_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_vx_tumu-3.c: New test.
2023-02-12 13:58:41 +08:00
Ju-Zhe Zhong
f98b4bc59b RISC-V: Add vwsubu.wx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsubu_wv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wv_tumu-3.c: New test.
2023-02-12 13:58:41 +08:00
Ju-Zhe Zhong
9aa6c67dea RISC-V: Add vwsubu.wx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsubu_wx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsubu_wx_tumu-3.c: New test.
2023-02-12 13:58:41 +08:00
Ju-Zhe Zhong
a1e42094e7 RISC-V: Add integer widening instructions
gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
	class.
	(class vwmulsu): Ditto.
	(class vwcvt): Ditto.
	(BASE): Add integer widening support.
	* config/riscv/riscv-vector-builtins-bases.h: Ditto
	* config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
	(vwsub): New class.
	(vwmul): New class.
	(vwmulu): New class.
	(vwmulsu): New class.
	(vwaddu): New class.
	(vwsubu): New class.
	(vwcvt_x): New class.
	(vwcvtu_x): New class.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
	class.
	(struct widen_alu_def): New class.
	(SHAPE): New class.
	* config/riscv/riscv-vector-builtins-shapes.h: New class.
	* config/riscv/riscv-vector-builtins.cc
	(rvv_arg_type_info::get_base_vector_type): Add integer widening support.
	(rvv_arg_type_info::get_tree_type): Ditto.
	* config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
	(x_v): Ditto.
	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
	widening support.
	* config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
	* config/riscv/riscv.h (X0_REGNUM): New constant.
	* config/riscv/vector-iterators.md: New iterators.
	* config/riscv/vector.md
	(@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
	pattern.
	(@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
	Ditto.
	(@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
	(@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
	Ditto.
	(@pred_widen_mulsu<mode>): Ditto.
	(@pred_widen_mulsu<mode>_scalar): Ditto.
	(@pred_<optab><mode>): Ditto.
2023-02-12 13:58:41 +08:00
Ju-Zhe Zhong
d88110b07e RISC-V: Add vmulh.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmulh_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vv_tumu-3.C: New test.
2023-02-12 13:58:05 +08:00
Ju-Zhe Zhong
f18e96e618 RISC-V: Add vmulh.vx C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmulh_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tumu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulh_vx_tumu_rv64-3.C: New test.
2023-02-12 13:58:05 +08:00
Ju-Zhe Zhong
b81d711d18 RISC-V: Add vmulhsu.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmulhsu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vv_tumu-3.C: New test.
2023-02-12 13:58:05 +08:00
Ju-Zhe Zhong
5a792199d8 RISC-V: Add vmulhsu.vx C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmulhsu_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tumu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhsu_vx_tumu_rv64-3.C: New test.
2023-02-12 13:58:05 +08:00
Ju-Zhe Zhong
b9eabfee84 RISC-V: Add vmulhu.vx C++ tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmulhu_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tumu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmulhu_vx_tumu_rv64-3.C: New test.
2023-02-12 13:58:05 +08:00
Ju-Zhe Zhong
9ecdd261f7 RISC-V: Add vmulh.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmulh_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vv_tumu-3.c: New test.
2023-02-12 13:58:05 +08:00
Ju-Zhe Zhong
fa07f9da8b RISC-V: Add vmulh.vx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmulh_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tumu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulh_vx_tumu_rv64-3.c: New test.
2023-02-12 13:58:04 +08:00
Ju-Zhe Zhong
956c0c8c7d RISC-V: Add vmulhsu.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmulhsu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vv_tumu-3.c: New test.
2023-02-12 13:58:04 +08:00
Ju-Zhe Zhong
f95ada62f3 RISC-V: Add vmulhsu.vx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmulhsu_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tumu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhsu_vx_tumu_rv64-3.c: New test.
2023-02-12 13:58:04 +08:00
Ju-Zhe Zhong
ce756a1392 RISC-V: Add vmulhu.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmulhu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vv_tumu-3.c: New test.
2023-02-12 13:58:04 +08:00
Ju-Zhe Zhong
87c557e269 RISC-V: Add vmulhu.vx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmulhu_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tumu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmulhu_vx_tumu_rv64-3.c: New test.
2023-02-12 13:58:04 +08:00
Ju-Zhe Zhong
8340bbad6a RISC-V: Add vmulh C/C++ support
Co-authored-by: kito-cheng <kito.cheng@sifive.com>

gcc/ChangeLog:

	* common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
	* config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
	(BASE): Ditto.
	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
	* config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
	API support.
	(vmulhu): Ditto.
	(vmulhsu): Ditto.
	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
	New macro.
	(DEF_RVV_FULL_V_U_OPS): Ditto.
	(vint8mf8_t): Ditto.
	(vint8mf4_t): Ditto.
	(vint8mf2_t): Ditto.
	(vint8m1_t): Ditto.
	(vint8m2_t): Ditto.
	(vint8m4_t): Ditto.
	(vint8m8_t): Ditto.
	(vint16mf4_t): Ditto.
	(vint16mf2_t): Ditto.
	(vint16m1_t): Ditto.
	(vint16m2_t): Ditto.
	(vint16m4_t): Ditto.
	(vint16m8_t): Ditto.
	(vint32mf2_t): Ditto.
	(vint32m1_t): Ditto.
	(vint32m2_t): Ditto.
	(vint32m4_t): Ditto.
	(vint32m8_t): Ditto.
	(vint64m1_t): Ditto.
	(vint64m2_t): Ditto.
	(vint64m4_t): Ditto.
	(vint64m8_t): Ditto.
	(vuint8mf8_t): Ditto.
	(vuint8mf4_t): Ditto.
	(vuint8mf2_t): Ditto.
	(vuint8m1_t): Ditto.
	(vuint8m2_t): Ditto.
	(vuint8m4_t): Ditto.
	(vuint8m8_t): Ditto.
	(vuint16mf4_t): Ditto.
	(vuint16mf2_t): Ditto.
	(vuint16m1_t): Ditto.
	(vuint16m2_t): Ditto.
	(vuint16m4_t): Ditto.
	(vuint16m8_t): Ditto.
	(vuint32mf2_t): Ditto.
	(vuint32m1_t): Ditto.
	(vuint32m2_t): Ditto.
	(vuint32m4_t): Ditto.
	(vuint32m8_t): Ditto.
	(vuint64m1_t): Ditto.
	(vuint64m2_t): Ditto.
	(vuint64m4_t): Ditto.
	(vuint64m8_t): Ditto.
	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
	(DEF_RVV_FULL_V_U_OPS): Ditto.
	(check_required_extensions): Add vmulh support.
	(rvv_arg_type_info::get_tree_type): Ditto.
	* config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
	(enum rvv_base_type): Ditto.
	* config/riscv/riscv.opt: Add 'V' extension flag.
	* config/riscv/vector-iterators.md (su): New iterator.
	* config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
	(@pred_mulh<v_su><mode>_scalar): Ditto.
	(*pred_mulh<v_su><mode>_scalar): Ditto.
	(*pred_mulh<v_su><mode>_extended_scalar): Ditto.
2023-02-12 13:57:54 +08:00
Ju-Zhe Zhong
74595dd518 RISC-V: Add vsext C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsext_vf2-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf2_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf4_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsext_vf8_tumu-3.C: New test.
2023-02-12 11:04:09 +08:00
Ju-Zhe Zhong
921f11c8cc RISC-V: Add vzext.vf2 C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vzext_vf2-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf2_tumu-3.C: New test.
2023-02-12 11:04:09 +08:00
Ju-Zhe Zhong
522d385831 RISC-V: Add vzext.vf4 C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vzext_vf4-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf4_tumu-3.C: New test.
2023-02-12 11:04:09 +08:00
Ju-Zhe Zhong
221f26c962 RISC-V: Add vzext.vf8 C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vzext_vf8-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vzext_vf8_tumu-3.C: New test.
2023-02-12 11:04:09 +08:00
Ju-Zhe Zhong
00c9392957 RISC-V: Add vsext constraint tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/unop_v_constraint-2.c: New test.
2023-02-12 11:04:09 +08:00
Ju-Zhe Zhong
7d2c4a6f07 RISC-V: Add vsext.vf2 C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsext_vf2-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf2_tumu-3.c: New test.
2023-02-12 11:04:09 +08:00
Ju-Zhe Zhong
42666defc0 RISC-V: Add vsext.vf4 C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsext_vf4-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf4_tumu-3.c: New test.
2023-02-12 11:04:09 +08:00
Ju-Zhe Zhong
decfa1d5bc RISC-V: Add vsext.vf8 C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsext_vf8-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsext_vf8_tumu-3.c: New test.
2023-02-12 11:04:08 +08:00
Ju-Zhe Zhong
91d0120e38 RISC-V: Add vzext.vf2 C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vzext_vf2-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf2_tumu-3.c: New test.
2023-02-12 11:04:08 +08:00
Ju-Zhe Zhong
1d66166b0f RISC-V: Add vzext.vf4 C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vzext_vf4-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf4_tumu-3.c: New test.
2023-02-12 11:04:08 +08:00
Ju-Zhe Zhong
a2da134248 RISC-V: Add vzext.vf8 C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vzext_vf8-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vzext_vf8_tumu-3.c: New test.
2023-02-12 11:04:08 +08:00
Ju-Zhe Zhong
99fa5d94c4 RISC-V: Add vsext/vzext C/C++ intrinsic support
gcc/ChangeLog:

	* config/riscv/iterators.md: Add sign_extend/zero_extend.
	* config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
	(BASE): Ditto.
	* config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
	* config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
	define.
	(vzext): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
	for vsext/vzext support.
	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
	macro define.
	(DEF_RVV_QEXTI_OPS): Ditto.
	(DEF_RVV_OEXTI_OPS): Ditto.
	(DEF_RVV_WEXTU_OPS): Ditto.
	(DEF_RVV_QEXTU_OPS): Ditto.
	(DEF_RVV_OEXTU_OPS): Ditto.
	(vint16mf4_t): Ditto.
	(vint16mf2_t): Ditto.
	(vint16m1_t): Ditto.
	(vint16m2_t): Ditto.
	(vint16m4_t): Ditto.
	(vint16m8_t): Ditto.
	(vint32mf2_t): Ditto.
	(vint32m1_t): Ditto.
	(vint32m2_t): Ditto.
	(vint32m4_t): Ditto.
	(vint32m8_t): Ditto.
	(vint64m1_t): Ditto.
	(vint64m2_t): Ditto.
	(vint64m4_t): Ditto.
	(vint64m8_t): Ditto.
	(vuint16mf4_t): Ditto.
	(vuint16mf2_t): Ditto.
	(vuint16m1_t): Ditto.
	(vuint16m2_t): Ditto.
	(vuint16m4_t): Ditto.
	(vuint16m8_t): Ditto.
	(vuint32mf2_t): Ditto.
	(vuint32m1_t): Ditto.
	(vuint32m2_t): Ditto.
	(vuint32m4_t): Ditto.
	(vuint32m8_t): Ditto.
	(vuint64m1_t): Ditto.
	(vuint64m2_t): Ditto.
	(vuint64m4_t): Ditto.
	(vuint64m8_t): Ditto.
	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
	(DEF_RVV_QEXTI_OPS): Ditto.
	(DEF_RVV_OEXTI_OPS): Ditto.
	(DEF_RVV_WEXTU_OPS): Ditto.
	(DEF_RVV_QEXTU_OPS): Ditto.
	(DEF_RVV_OEXTU_OPS): Ditto.
	(rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
	support.
	(rvv_arg_type_info::get_tree_type): Ditto.
	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
	* config/riscv/vector-iterators.md (z): New attribute.
	* config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
	(@pred_<optab><mode>_vf4): Ditto.
	(@pred_<optab><mode>_vf8): Ditto.
2023-02-12 11:03:51 +08:00
Ju-Zhe Zhong
064a2d53a3 RISC-V: Add vsadd.vx C++ overloaded API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsadd_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tumu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vx_tumu_rv64-3.C: New test.
2023-02-12 10:59:24 +08:00
Ju-Zhe Zhong
a1ca758fd5 RISC-V: Add vsaddu.vx overloaded API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsaddu_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tumu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vx_tumu_rv64-3.C: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
3762ff2450 RISC-V: Add vssub.vx C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vssub_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tumu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vx_tumu_rv64-3.C: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
e5dd529dcd RISC-V: Add vssubu.vx C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vssubu_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tumu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vx_tumu_rv64-3.C: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
933dce5510 RISC-V: Add vsadd.vx C++ API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsadd_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tumu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vx_tumu_rv64-3.c: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
ed0c99027d RISC-V: Add vsaddu.vx C++ API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsaddu_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tumu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vx_tumu_rv64-3.c: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
1b7f3e20a2 RISC-V: Add vssub.vx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vssub_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tumu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vx_tumu_rv64-3.c: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
d6c18465cb RISC-V: Add vssubu.vx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vssubu_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tumu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vx_tumu_rv64-3.c: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
6a04629d5a RISC-V: Add vsadd.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsadd_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsadd_vv_tumu-3.c: New test.
2023-02-12 10:59:23 +08:00
Ju-Zhe Zhong
e5600572a1 RISC-V: Add vsaddu.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsaddu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsaddu_vv_tumu-3.c: New test.
2023-02-12 10:59:22 +08:00
Ju-Zhe Zhong
bd182ae41b RISC-V: Add vssub.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vssub_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vssub_vv_tumu-3.c: New test.
2023-02-12 10:59:22 +08:00
Ju-Zhe Zhong
cd92bd48c5 RISC-V: Add vssubu.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vssubu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vssubu_vv_tumu-3.c: New test.
2023-02-12 10:59:22 +08:00
Ju-Zhe Zhong
ae9b600f2d RISC-V: Add vssubu.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vssubu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vssubu_vv_tumu-3.C: New test.
2023-02-12 10:59:22 +08:00
Ju-Zhe Zhong
cc01b5c065 RISC-V: Add vsub.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vssub_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vssub_vv_tumu-3.C: New test.
2023-02-12 10:59:22 +08:00
Ju-Zhe Zhong
77c9ee5e22 RISC-V: Add vsaddu.vv C++ API tests.
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsaddu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsaddu_vv_tumu-3.C: New test.
2023-02-12 10:59:22 +08:00
Ju-Zhe Zhong
098e7fc10e RISC-V: Add vsadd.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsadd_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsadd_vv_tumu-3.C: New test.
2023-02-12 10:59:22 +08:00
Ju-Zhe Zhong
b2691c96ef RISC-V: Add saturating Add && Sub vx constraint tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/binop_vx_constraint-100.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-101.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-102.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-103.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-104.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-105.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-106.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-107.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-108.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-109.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-110.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-111.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-112.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-113.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-114.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-115.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-116.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-117.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-118.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-119.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-97.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-98.c: New test.
	* gcc.target/riscv/rvv/base/binop_vx_constraint-99.c: New test.
2023-02-12 10:59:19 +08:00
Ju-Zhe Zhong
7ad729a0df RISC-V: Add saturating Addition && Subtraction C/C++ Support
gcc/ChangeLog:

	* config/riscv/iterators.md: Add saturating Addition && Subtraction.
	* config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
	* config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
	* config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
	(vssub): Ditto.
	(vsaddu): Ditto.
	(vssubu): Ditto.
	* config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
	support.
	(sll.vv): Ditto.
	(%3,%v4): Ditto.
	(%3,%4): Ditto.
	* config/riscv/vector.md (@pred_<optab><mode>): New pattern.
	(@pred_<optab><mode>_scalar): New pattern.
	(*pred_<optab><mode>_scalar): New pattern.
	(*pred_<optab><mode>_extended_scalar): New pattern.
2023-02-12 10:59:13 +08:00
Ju-Zhe Zhong
eeb50b7035 RISC-V: Add vneg.v C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vneg_v-1.C: New test.
	* g++.target/riscv/rvv/base/vneg_v-2.C: New test.
	* g++.target/riscv/rvv/base/vneg_v-3.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vneg_v_tumu-3.C: New test.
2023-02-12 10:59:13 +08:00
Ju-Zhe Zhong
4170a0f021 RISC-V: Add vnot.v C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vnot_v-1.C: New test.
	* g++.target/riscv/rvv/base/vnot_v-2.C: New test.
	* g++.target/riscv/rvv/base/vnot_v-3.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vnot_v_tumu-3.C: New test.
2023-02-12 10:59:12 +08:00
Ju-Zhe Zhong
779e441103 RISC-V: Add unary constraint tests.
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/unop_v_constraint-1.c: New test.
2023-02-12 10:59:12 +08:00