Ju-Zhe Zhong [Tue, 7 Feb 2023 06:24:44 +0000 (14:24 +0800)]
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.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:19:32 +0000 (14:19 +0800)]
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.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:18:23 +0000 (14:18 +0800)]
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.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:17:12 +0000 (14:17 +0800)]
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.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:16:01 +0000 (14:16 +0800)]
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.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:14:24 +0000 (14:14 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 13:04:05 +0000 (21:04 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 13:02:48 +0000 (21:02 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 13:00:45 +0000 (21:00 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:55:51 +0000 (20:55 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:52:07 +0000 (20:52 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:50:34 +0000 (20:50 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:45:33 +0000 (20:45 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:09:45 +0000 (20:09 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:08:42 +0000 (20:08 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:06:52 +0000 (20:06 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 12:05:19 +0000 (20:05 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 11:51:13 +0000 (19:51 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:25:47 +0000 (13:25 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:24:29 +0000 (13:24 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:23:27 +0000 (13:23 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:20:30 +0000 (13:20 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:18:36 +0000 (13:18 +0800)]
RISC-V: Add vsext constraint tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/unop_v_constraint-2.c: New test.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:17:04 +0000 (13:17 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:15:04 +0000 (13:15 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:12:38 +0000 (13:12 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:11:06 +0000 (13:11 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:09:49 +0000 (13:09 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:08:39 +0000 (13:08 +0800)]
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.
Ju-Zhe Zhong [Mon, 6 Feb 2023 05:06:56 +0000 (13:06 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:29:27 +0000 (16:29 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:27:57 +0000 (16:27 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:26:06 +0000 (16:26 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:24:55 +0000 (16:24 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:23:43 +0000 (16:23 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:22:39 +0000 (16:22 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:21:19 +0000 (16:21 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 08:18:27 +0000 (16:18 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 02:01:06 +0000 (10:01 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:59:55 +0000 (09:59 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:58:51 +0000 (09:58 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:57:42 +0000 (09:57 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:56:22 +0000 (09:56 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:55:10 +0000 (09:55 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:53:50 +0000 (09:53 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:51:55 +0000 (09:51 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:50:31 +0000 (09:50 +0800)]
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.
Ju-Zhe Zhong [Sun, 5 Feb 2023 01:47:38 +0000 (09:47 +0800)]
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.
Ju-Zhe Zhong [Fri, 3 Feb 2023 23:27:59 +0000 (07:27 +0800)]
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.
Ju-Zhe Zhong [Fri, 3 Feb 2023 23:26:41 +0000 (07:26 +0800)]
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.
Ju-Zhe Zhong [Fri, 3 Feb 2023 23:25:22 +0000 (07:25 +0800)]
RISC-V: Add unary constraint tests.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/unop_v_constraint-1.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 23:24:08 +0000 (07:24 +0800)]
RISC-V: Add vneg.v C/C++ API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vneg_v-1.c: New test.
* gcc.target/riscv/rvv/base/vneg_v-2.c: New test.
* gcc.target/riscv/rvv/base/vneg_v-3.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_m-1.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_m-2.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_m-3.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vneg_v_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 23:22:40 +0000 (07:22 +0800)]
RISC-V: Add vnot.v C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vnot_v-1.c: New test.
* gcc.target/riscv/rvv/base/vnot_v-2.c: New test.
* gcc.target/riscv/rvv/base/vnot_v-3.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnot_v_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 23:21:15 +0000 (07:21 +0800)]
RISC-V: Add unary C/C++ API support
gcc/ChangeLog:
* config/riscv/iterators.md: Add neg and not.
* config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
(BASE): Ditto.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
into alu.
(vsub): Ditto.
(vand): Ditto.
(vor): Ditto.
(vxor): Ditto.
(vsll): Ditto.
(vsra): Ditto.
(vsrl): Ditto.
(vmin): Ditto.
(vmax): Ditto.
(vminu): Ditto.
(vmaxu): Ditto.
(vmul): Ditto.
(vdiv): Ditto.
(vrem): Ditto.
(vdivu): Ditto.
(vremu): Ditto.
(vrsub): Ditto.
(vneg): Ditto.
(vnot): Ditto.
* config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
(struct alu_def): Ditto.
(SHAPE): Ditto.
* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
* config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
* config/riscv/vector-iterators.md: New iterator.
* config/riscv/vector.md (@pred_<optab><mode>): New pattern
Ju-Zhe Zhong [Sat, 4 Feb 2023 01:09:30 +0000 (09:09 +0800)]
RISC-V: Fix VSETVL PASS bug in exception handling
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/exception-1.C: New test.
GCC Administrator [Sun, 12 Feb 2023 00:17:22 +0000 (00:17 +0000)]
Daily bump.
Jakub Jelinek [Sat, 11 Feb 2023 14:57:54 +0000 (15:57 +0100)]
ipa-cp: Punt for too large offsets [PR108605]
Seems most of IPA uses unsigned type for byte offsets
ipa-param-manipulation.h: unsigned unit_offset;
ipa-param-manipulation.h: unsigned unit_offset;
ipa-param-manipulation.h: void register_replacement (tree base, unsigned unit_offset, tree replacement);
ipa-param-manipulation.h: tree lookup_replacement (tree base, unsigned unit_offset);
ipa-param-manipulation.h: unsigned unit_offset);
ipa-prop.h: unsigned unit_offset;
ipa-prop.h: tree get_value (int index, unsigned unit_offset, bool by_ref) const;
ipa-prop.h: tree get_value (int index, unsigned unit_offset) const;
ipa-prop.h: const ipa_argagg_value *get_elt (int index, unsigned unit_offset) const;
ipa-cp.cc:ipa_argagg_value_list::get_elt (int index, unsigned unit_offset) const
ipa-cp.cc: unsigned prev_unit_offset = 0;
ipa-cp.cc:ipa_argagg_value_list::get_value (int index, unsigned unit_offset) const
ipa-cp.cc:ipa_argagg_value_list::get_value (int index, unsigned unit_offset,
ipa-cp.cc: unsigned other_offset = other.m_elts[i].unit_offset;
ipa-cp.cc: unsigned prev_unit_offset = 0;
ipa-cp.cc: unsigned prev_unit_offset = 0;
ipa-cp.cc: unsigned this_offset = elts[i].unit_offset;
ipa-cp.cc: unsigned prev_unit_offset = 0;
ipa-cp.cc: unsigned unit_offset = aglat->offset / BITS_PER_UNIT;
ipa-cp.cc: unsigned prev_unit_offset = 0;
ipa-param-manipulation.cc: unsigned unit_offset;
ipa-param-manipulation.cc:isra_get_ref_base_and_offset (tree expr, tree *base_p, unsigned *unit_offset_p)
ipa-param-manipulation.cc: unsigned unit_offset,
ipa-param-manipulation.cc: unsigned unit_offset)
ipa-param-manipulation.cc:ipa_param_body_adjustments::lookup_replacement (tree base, unsigned unit_offset)
ipa-param-manipulation.cc: unsigned unit_offset;
ipa-prop.cc: unsigned unit_offset = bit_offset / BITS_PER_UNIT;
ipa-sra.cc: unsigned unit_offset;
ipa-sra.cc: unsigned unit_offset;
ipa-sra.cc: unsigned unit_offset, unsigned unit_size)
ipa-sra.cc: unsigned offset = argacc->unit_offset + delta_offset;
so before converting a HOST_WIDE_INT bit offset to unsigned byte offset
we need to punt for too large offsets. Some places do that, e.g.
isra_get_ref_base_and_offset has
if (offset < 0 || (offset / BITS_PER_UNIT) > UINT_MAX)
return false;
but ipa_agg_value_from_jfunc doesn't.
The following patch fixes that.
2023-02-11 Jakub Jelinek <jakub@redhat.com>
PR ipa/108605
* ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
item->offset bit position is too large to be representable as
unsigned int byte position.
* c-c++-common/pr108605.c: New test.
Gerald Pfeifer [Sat, 11 Feb 2023 11:59:10 +0000 (12:59 +0100)]
doc: Adjust link to WG14 N965
gcc/ChangeLog:
* doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
Jonathan Yong [Sat, 28 Jan 2023 18:12:50 +0000 (18:12 +0000)]
pr65658.c: fix excess warnings on LLP64 targets
gcc/testsuite/ChangeLog:
* gcc.dg/pr65658.c: fix LLP64 test.
Signed-off-by: Jonathan Yong <10walls@gmail.com>
Jonathan Yong [Sat, 28 Jan 2023 16:49:27 +0000 (16:49 +0000)]
gcc/testsuite: fix excess warnings for mingw-w64
gcc/testsuite/ChangeLog:
* c-c++-common/Wsizeof-array-div1.c: fix excess warnings.
* gcc.dg/Warray-bounds-52.c: ditto
* gcc.dg/Wstringop-overflow-62.c: ditto
* gcc.dg/attr-vector_size.c: ditto
* gcc.dg/overflow-warn-9.c: ditto
Signed-off-by: Jonathan Yong <10walls@gmail.com>
Gerald Pfeifer [Sat, 11 Feb 2023 08:00:01 +0000 (09:00 +0100)]
libstdc++: Update link to "Worst-case efficient priority queues"
libstdc++-v3/ChangeLog:
* doc/xml/manual/policy_data_structures_biblio.xml: Update
link to "Worst-case efficient priority queues".
* doc/html/manual/policy_data_structures.html: Regenerate.
niXman [Sat, 11 Feb 2023 06:18:10 +0000 (06:18 +0000)]
libiberty: fix lrealpath on Windows NTFS symlinks
gcc computes the wrong prefix if invoked through an NTFS
symlink. Try to resolve it if possible.
PR/108350
libiberty/ChangeLog:
* lrealpath.c (lrealpath): try to resolve symlink and
use UNC paths where applicable.
Signed-off-by: Jonathan Yong <10walls@gmail.com>
GCC Administrator [Sat, 11 Feb 2023 00:17:31 +0000 (00:17 +0000)]
Daily bump.
David Malcolm [Fri, 10 Feb 2023 23:10:21 +0000 (18:10 -0500)]
analyzer: don't warn for deref-before-check for checks in macros [PR108745]
Integration testing shows this patch fixes all 9 known false positives
from -Wanalyzer-deref-before-check within ImageMagick-7.1.0-57, and
eliminates 34 further as-yet unassessed such diagnostics, without
eliminating the 1 known true positive.
This improves the rate of true positives for the warning from
1.56% to 4.76% of the total:
-Wanalyzer-deref-before-check: 1.56% -> 4.76% (GOOD: 1 BAD: 63->20)
TRUE: 1
FALSE: 15 -> 6 (-9)
ImageMagick-7.1.0-57: 9 -> 0 (-9)
TODO: 48 -> 14 (-34)
ImageMagick-7.1.0-57: 21 -> 1 (-20)
qemu-7.2.0: 25 -> 11 (-14)
gcc/analyzer/ChangeLog:
PR analyzer/108745
* sm-malloc.cc (deref_before_check::emit): Reject the warning if
the check occurs within a macro defintion.
gcc/testsuite/ChangeLog:
PR analyzer/108745
* gcc.dg/analyzer/deref-before-check-macro-pr108745.c: New test.
* gcc.dg/analyzer/deref-before-check-macro.c: New test.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Joseph Myers [Fri, 10 Feb 2023 22:42:43 +0000 (22:42 +0000)]
Regenerate .pot files
gcc/po/
* gcc.pot: Regenerate.
libcpp/po/
* cpplib.pot: Regenerate.
Vladimir N. Makarov [Fri, 10 Feb 2023 17:17:07 +0000 (12:17 -0500)]
RA: Use caller save equivalent memory only for LRA
Recently I submitted a patch to reuse memory with constant address for
caller saves optimization for constant or pure function call. It
seems to work only for targets using LRA instead of the old reload
pass. So the patch switches off this optimization when the old reload
pass is used.
PR middle-end/108754
gcc/ChangeLog:
* ira.cc (update_equiv_regs): Set up ira_reg_equiv for
valid_combine only when ira_use_lra_p is true.
Vladimir N. Makarov [Fri, 10 Feb 2023 16:12:37 +0000 (11:12 -0500)]
RA: Use simple LRA for huge functions
The PR108500 test contains a huge function and RA spends a lot of time
to compile the test with -O0. The patch decreases compilation time
considerably for huge functions. Compilation time for the PR test
decreases from 1235s to 709s on Intel i7-13600K.
PR tree-optimization/108500
gcc/ChangeLog:
* params.opt (ira-simple-lra-insn-threshold): Add new param.
* ira.cc (ira): Use the param to switch on simple LRA.
Andrew MacLeod [Thu, 9 Feb 2023 22:50:07 +0000 (17:50 -0500)]
Query rangers cache in readonly mode only from within
The change for 108356 allowed the cache to scan the dominator trees when
it was attempting a lookup rather than using the local value. I
inadvertantly changed the externbal interface to also do this, so all
the GORI queries via range_on_edge of the cache could also do lookups.
This triggered a quadratic, possible expoential time increase when
the right conditions were presented. That being a cascading series of
recomputaions on outgoing edge calucaltions that at then searched the dom tree
instead of being a simple calcualtion using whats easily available.
The fix is to use the internal API within the cache rather than the
extrenal one that GORI uses. This leaves GORI computations to be
resovled in linear time.
PR tree-optimization/108687
gcc/
* gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
back to RFD_NONE mode for calculations.
(ranger_cache::propagate_cache): Call the internal edge range API
with RFD_READ_ONLY instead of changing the external routine.
Andrew MacLeod [Mon, 6 Feb 2023 18:07:01 +0000 (13:07 -0500)]
Add function context for querying global ranges.
When processing arguments for assume functions, call get_global_range
directly and utilize a function context pointer to avoid any assumptions
about using cfun.
PR tree-optimization/108520
gcc/
* gimple-range-infer.cc (check_assume_func): Invoke
gimple_range_global directly instead using global_range_query.
* value-query.cc (get_range_global): Add function context and
avoid calling nonnull_arg_p if not cfun.
(gimple_range_global): Add function context pointer.
* value-query.h (imple_range_global): Add function context.
gcc/testsuite/
* g++.dg/pr108520.C: New.
Ju-Zhe Zhong [Fri, 3 Feb 2023 08:14:05 +0000 (16:14 +0800)]
RISC-V: Add vand.vx C++ API test.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vand_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vand_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 08:12:57 +0000 (16:12 +0800)]
RISC-V: Add vdiv.vx C++ API test.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vdiv_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdiv_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 08:11:38 +0000 (16:11 +0800)]
RISC-V: Add vdivu.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vdivu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vdivu_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 08:09:32 +0000 (16:09 +0800)]
RISC-V: Add vmax.vx C++ API tests.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmax_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmax_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 08:00:35 +0000 (16:00 +0800)]
RISC-V: Add vmaxu.vx C++ API tests.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmaxu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmaxu_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:58:30 +0000 (15:58 +0800)]
RISC-V: Add vmin.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmin_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmin_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:57:12 +0000 (15:57 +0800)]
RISC-V: Add vminu.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vminu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vminu_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:53:15 +0000 (15:53 +0800)]
RISC-V: Add vmul.vx C++ API testcase
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmul_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmul_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:51:54 +0000 (15:51 +0800)]
RISC-V: Add vor.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vor_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vor_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:50:42 +0000 (15:50 +0800)]
RISC-V: Add vrem.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vrem_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrem_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:49:11 +0000 (15:49 +0800)]
RISC-V: Add vremu.vx C++ API tests.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vremu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vremu_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:45:23 +0000 (15:45 +0800)]
RISC-V: Add vadd.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vadd_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vadd_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:43:18 +0000 (15:43 +0800)]
RISC-V: Add vrsub.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vrsub_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vrsub_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:42:07 +0000 (15:42 +0800)]
RISC-V: Add vsub.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vsub_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsub_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:40:24 +0000 (15:40 +0800)]
RISC-V: Add vxor.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vxor_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vxor_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:37:16 +0000 (15:37 +0800)]
RISC-V: Add binary op vx constraint tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/binop_vx_constraint-1.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-10.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-11.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-12.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-13.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-14.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-15.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-16.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-17.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-18.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-19.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-2.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-20.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-21.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-22.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-23.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-24.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-25.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-26.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-27.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-28.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-29.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-3.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-30.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-31.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-32.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-33.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-34.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-35.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-36.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-37.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-38.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-39.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-4.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-40.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-41.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-42.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-43.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-44.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-45.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-46.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-47.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-48.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-49.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-5.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-50.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-51.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-52.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-53.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-54.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-55.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-56.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-57.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-58.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-59.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-6.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-60.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-61.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-62.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-63.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-64.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-65.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-66.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-67.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-68.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-69.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-7.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-70.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-71.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-72.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-73.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-74.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-75.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-76.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-77.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-78.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-79.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-8.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-80.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-81.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-82.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-83.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-84.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-85.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-86.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-87.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-88.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-89.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-9.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-90.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-91.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-92.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-93.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-94.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-95.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-96.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:35:52 +0000 (15:35 +0800)]
RISC-V: Add vadd.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vadd_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadd_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:34:31 +0000 (15:34 +0800)]
RISC-V: Add vand.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vand_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vand_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:30:24 +0000 (15:30 +0800)]
RISC-V: Add vdiv.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vdiv_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdiv_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:24:58 +0000 (15:24 +0800)]
RISC-V: Add vdivu C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vdivu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vdivu_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:23:38 +0000 (15:23 +0800)]
RISC-V: Add vmax.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmax_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmax_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:22:24 +0000 (15:22 +0800)]
RISC-V: Add vmaxu.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmaxu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmaxu_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:20:38 +0000 (15:20 +0800)]
RISC-V: Add vmin.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmin_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmin_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:18:11 +0000 (15:18 +0800)]
RISC-V: Add vminu.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vminu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vminu_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:15:08 +0000 (15:15 +0800)]
RISC-V: Add vmul.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmul_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmul_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:13:51 +0000 (15:13 +0800)]
RISC-V: Add vor.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vor_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vor_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:11:52 +0000 (15:11 +0800)]
RISC-V: Add vrem.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vrem_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrem_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:10:25 +0000 (15:10 +0800)]
RISC-V: Add vremu.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vremu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vremu_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:08:18 +0000 (15:08 +0800)]
RISC-V: Add vrsub.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vrsub_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vrsub_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:06:22 +0000 (15:06 +0800)]
RISC-V: Add vsub.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vsub_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsub_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 3 Feb 2023 07:04:49 +0000 (15:04 +0800)]
RISC-V: Add vxor.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vxor_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vxor_vx_tumu_rv64-3.c: New test.