Commit graph

198685 commits

Author SHA1 Message Date
Ju-Zhe Zhong
fb03f2acfb RISC-V: Add vncvt C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vncvt_x-1.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x-2.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x-3.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vncvt_x_tumu-3.c: New test.
2023-02-12 15:26:32 +08:00
Ju-Zhe Zhong
eeec45d292 RISC-V: Add vnsra C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnsra_wv-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsra_wx_tumu-3.c: New test.
2023-02-12 15:26:32 +08:00
Ju-Zhe Zhong
10e999a3ab RISC-V: Add vnsrl C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnsrl_wv-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnsrl_wx_tumu-3.c: New test.
2023-02-12 15:26:32 +08:00
Ju-Zhe Zhong
6271a07219 RISC-V: Add vnsrl/vnsra/vncvt/vmerge/vmv C/C++ support
gcc/ChangeLog:

	* config/riscv/constraints.md (Wbr): Remove unused constraint.
	* config/riscv/predicates.md: Fix move operand predicate.
	* config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
	(class vncvt_x): Ditto.
	(class vmerge): Ditto.
	(class vmv_v): Ditto.
	(BASE): Ditto.
	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
	* config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
	(vsrl): Ditto.
	(vnsrl): Ditto.
	(vnsra): Ditto.
	(vncvt_x): Ditto.
	(vmerge): Ditto.
	(vmv_v): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
	(struct move_def): Ditto.
	(SHAPE): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
	(DEF_RVV_WEXTU_OPS): Ditto
	* config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
	(v_v): Ditto.
	(v_x): Ditto.
	(x_w): Ditto.
	(x): Ditto.
	* config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
	* config/riscv/vector-iterators.md (nmsac):New iterator.
	(nmsub): New iterator.
	* config/riscv/vector.md (@pred_merge<mode>): New pattern.
	(@pred_merge<mode>_scalar): New pattern.
	(*pred_merge<mode>_scalar): New pattern.
	(*pred_merge<mode>_extended_scalar): New pattern.
	(@pred_narrow_<optab><mode>): New pattern.
	(@pred_narrow_<optab><mode>_scalar): New pattern.
	(@pred_trunc<mode>): New pattern.
2023-02-12 15:26:24 +08:00
Ju-Zhe Zhong
30eedd6a4f RISC-V: Add vmsbc C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmsbc_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vvm-1.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vvm-2.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vvm-3.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vxm_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vxm_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vxm_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vxm_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vxm_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmsbc_vxm_rv64-3.C: New test.
2023-02-12 15:15:02 +08:00
Ju-Zhe Zhong
485c710b4e RISC-V: Add vmadc C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmadc_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vvm-1.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vvm-2.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vvm-3.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vxm_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vxm_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vxm_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vxm_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vxm_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmadc_vxm_rv64-3.C: New test.
2023-02-12 15:15:00 +08:00
Ju-Zhe Zhong
bd5c5d2eaf RISC-V: Add vmsbc C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmsbc-1.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc-2.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc-3.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc-4.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc-5.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc-6.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc-7.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc-8.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vvm-1.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vvm-2.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vvm-3.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vxm_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vxm_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vxm_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vxm_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vxm_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmsbc_vxm_rv64-3.c: New test.
2023-02-12 15:14:58 +08:00
Ju-Zhe Zhong
c8c7b4b32d RISC-V: Add vmadc C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmadc-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadc-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadc-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadc-4.c: New test.
	* gcc.target/riscv/rvv/base/vmadc-5.c: New test.
	* gcc.target/riscv/rvv/base/vmadc-6.c: New test.
	* gcc.target/riscv/rvv/base/vmadc-7.c: New test.
	* gcc.target/riscv/rvv/base/vmadc-8.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vvm-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vvm-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vvm-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vxm_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vxm_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vxm_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vxm_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vxm_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadc_vxm_rv64-3.c: New test.
2023-02-12 15:14:57 +08:00
Ju-Zhe Zhong
dca23bf0bb RISC-V: Add vmadc/vmsbc C/C++ API support
gcc/ChangeLog:

	* config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
	(class vmsbc): Ditto.
	(BASE): Define new class.
	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
	* config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
	(vmsbc): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
	New class.
	(SHAPE): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
	* config/riscv/riscv-vector-builtins.cc
	(function_expander::use_exact_insn): Adjust for new support
	* config/riscv/riscv-vector-builtins.h
	(function_base::has_merge_operand_p): New function.
	* config/riscv/vector-iterators.md: New iterator.
	* config/riscv/vector.md (@pred_madc<mode>): New pattern.
	(@pred_msbc<mode>): Ditto.
	(@pred_madc<mode>_scalar): Ditto.
	(@pred_msbc<mode>_scalar): Ditto.
	(*pred_madc<mode>_scalar): Ditto.
	(*pred_madc<mode>_extended_scalar): Ditto.
	(*pred_msbc<mode>_scalar): Ditto.
	(*pred_msbc<mode>_extended_scalar): Ditto.
	(@pred_madc<mode>_overflow): Ditto.
	(@pred_msbc<mode>_overflow): Ditto.
	(@pred_madc<mode>_overflow_scalar): Ditto.
	(@pred_msbc<mode>_overflow_scalar): Ditto.
	(*pred_madc<mode>_overflow_scalar): Ditto.
	(*pred_madc<mode>_overflow_extended_scalar): Ditto.
	(*pred_msbc<mode>_overflow_scalar): Ditto.
	(*pred_msbc<mode>_overflow_extended_scalar): Ditto.
2023-02-12 15:14:35 +08:00
Ju-Zhe Zhong
b7e4f61c3e RISC-V: Add vadc C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vadc_vvm-1.C: New test.
	* g++.target/riscv/rvv/base/vadc_vvm-2.C: New test.
	* g++.target/riscv/rvv/base/vadc_vvm-3.C: New test.
	* g++.target/riscv/rvv/base/vadc_vvm_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vadc_vvm_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vadc_vvm_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vadc_vxm_tu_rv64-3.C: New test.
2023-02-12 14:44:50 +08:00
Ju-Zhe Zhong
6483b83103 RISC-V: Add vsbc C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsbc_vvm-1.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vvm-2.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vvm-3.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vvm_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vvm_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vvm_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv64-3.C: New test.
2023-02-12 14:44:50 +08:00
Ju-Zhe Zhong
c2f4dc5810 RISC-V: Add vsbc.vvm/vsbc.vxm C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsbc-1.c: New test.
	* gcc.target/riscv/rvv/base/vsbc-2.c: New test.
	* gcc.target/riscv/rvv/base/vsbc-3.c: New test.
	* gcc.target/riscv/rvv/base/vsbc-4.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vvm-1.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vvm-2.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vvm-3.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vvm_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vvm_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vvm_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv64-3.c: New test.
2023-02-12 14:44:50 +08:00
Ju-Zhe Zhong
b5e7450a17 RISC-V: Add vadc.vvm/vadc.vxm C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vadc-1.c: New test.
	* gcc.target/riscv/rvv/base/vadc-2.c: New test.
	* gcc.target/riscv/rvv/base/vadc-3.c: New test.
	* gcc.target/riscv/rvv/base/vadc-4.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vvm-1.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vvm-2.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vvm-3.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vvm_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vvm_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vvm_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv64-3.c: New test.
2023-02-12 14:44:50 +08:00
Ju-Zhe Zhong
cb44a16d21 RISC-V: Add vadc/vsbc C/C++ API support
gcc/ChangeLog:

	* config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
	* config/riscv/riscv-v.cc (simm32_p): Ditto.
	* config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
	(class vsbc): Ditto.
	(BASE): Ditto.
	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
	* config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
	(vsbc): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.cc
	(struct no_mask_policy_def): Ditto.
	(SHAPE): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
	* config/riscv/riscv-vector-builtins.cc
	(rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
	(rvv_arg_type_info::get_tree_type): Ditto.
	(function_expander::use_exact_insn): Ditto.
	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
	(function_base::use_mask_predication_p): New function.
	* config/riscv/vector-iterators.md: New iterator.
	* config/riscv/vector.md (@pred_adc<mode>): New pattern.
	(@pred_sbc<mode>): Ditto.
	(@pred_adc<mode>_scalar): Ditto.
	(@pred_sbc<mode>_scalar): Ditto.
	(*pred_adc<mode>_scalar): Ditto.
	(*pred_adc<mode>_extended_scalar): Ditto.
	(*pred_sbc<mode>_scalar): Ditto.
	(*pred_sbc<mode>_extended_scalar): Ditto.
2023-02-12 14:44:37 +08:00
Ju-Zhe Zhong
5e620b36cd RISC-V: allow vx instruction use "zero" as scalar register.
li a5,0
  vdiv.vx v0,v1,a5 =======> vdiv.vx v0,v1,zero

gcc/ChangeLog:

	* config/riscv/vector.md: use "zero" reg.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/binop_vx_constraint-121.c: New test.
2023-02-12 14:41:14 +08:00
Ju-Zhe Zhong
316c83b158 RISC-V: Add vwadd v C++ api test
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwadd_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_vx_tumu-3.C: New test.
2023-02-12 13:58:44 +08:00
Ju-Zhe Zhong
ccfaa50736 RISC-V: Add vwadd.w C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwadd_wv-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwadd_wx_tumu-3.C: New test.
2023-02-12 13:58:44 +08:00
Ju-Zhe Zhong
0006e578d0 RISC-V: Add vwaddu.v C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwaddu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_vx_tumu-3.C: New test.
2023-02-12 13:58:44 +08:00
Ju-Zhe Zhong
b840dad84d RISC-V: Add vwaddu.w c++ API TESTS
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwaddu_wv-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwaddu_wx_tumu-3.C: New test.
2023-02-12 13:58:44 +08:00
Ju-Zhe Zhong
98767d253c RISC-V: Add vwcvt C++ api test
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwcvt_x-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvt_x_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwcvtu_x_tumu-3.C: New test.
2023-02-12 13:58:44 +08:00
Ju-Zhe Zhong
7d010731e8 RISC-V: Add vwmul.v C++ api TETS
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwmul_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmul_vx_tumu-3.C: New test.
2023-02-12 13:58:44 +08:00
Ju-Zhe Zhong
307241cbaa RISC-V: Add vwmulsu.v C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwmulsu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulsu_vx_tumu-3.C: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
ba839fb84b RISC-V: Add vwmulu C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwmulu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmulu_vx_tumu-3.C: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
c95bc128c0 RISC-V: Add vwsub.v C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwsub_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_vx_tumu-3.C: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
b406b86cad RISC-V: Add vwsub.w C++ api TESTS
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwsub_wv-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsub_wx_tumu-3.C: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
0fca6d1ac5 RISC-V: Add vwsubu.v C++ API test
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwsubu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_vx_tumu-3.C: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
8532ae57f3 RISC-V: Add vwsubu.w C++ api TETS
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwsubu_wv-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwsubu_wx_tumu-3.C: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
345b2aa4eb RISC-V: Add constraint tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/binop_vx_constraint-120.c: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
c12ea7136a RISC-V: Add vwadd.v C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwadd_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_vx_tumu-3.c: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
7df7cbaaf5 RISC-V: Add vwadd.w C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwadd_wv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwadd_wx_tumu-3.c: New test.
2023-02-12 13:58:43 +08:00
Ju-Zhe Zhong
2daeb10c60 RISC-V: Add vwaddu.v C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwaddu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_vx_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
f14f44d92f RISC-V: Add vwaddu.w C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwaddu_wv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwaddu_wx_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
011ec88dd2 RISC-V: Add vwcvt C API test
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwcvt_x-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvt_x_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwcvtu_x_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
ee4f91db8e RISC-V: Add vwmul C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwmul_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmul_vx_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
697a877279 RISC-V: Add vwmulsu C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwmulsu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulsu_vx_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
fcbe69a096 RISC-V: Add vwmulu C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwmulu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmulu_vx_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
2a2ab19d55 RISC-V: Add vwsub.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsub_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vv_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
524e491ab5 RISC-V: Add vwsub.vx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsub_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_vx_tumu-3.c: New test.
2023-02-12 13:58:42 +08:00
Ju-Zhe Zhong
14ac33c8e0 RISC-V: Add vwsub.wv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsub_wv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wv_tumu-3.c: New test.
2023-02-12 13:58:41 +08:00
Ju-Zhe Zhong
931b3d8831 RISC-V: Add vwsub.wx C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwsub_wx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwsub_wx_tumu-3.c: New test.
2023-02-12 13:58:41 +08:00
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