Ju-Zhe Zhong [Fri, 10 Feb 2023 06:43:56 +0000 (14:43 +0800)]
RISC-V: Add vaadd.vx C api tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vaadd_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:42:48 +0000 (14:42 +0800)]
RISC-V: Add vaaddu.vv C api tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vaaddu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vv_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:41:41 +0000 (14:41 +0800)]
RISC-V: Add vaaddu.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vaaddu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vaaddu_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:38:22 +0000 (14:38 +0800)]
RISC-V: Add vasub.vv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vasub_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vv_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:37:01 +0000 (14:37 +0800)]
RISC-V: Add vasub.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vasub_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasub_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:35:47 +0000 (14:35 +0800)]
RISC-V: Add vasubu.vv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vasubu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vv_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:34:26 +0000 (14:34 +0800)]
RISC-V: Add vasubu.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vasubu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vasubu_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:32:58 +0000 (14:32 +0800)]
RISC-V: Add vnclip C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vnclip_wv-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclip_wx_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnclipu_wx_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:31:47 +0000 (14:31 +0800)]
RISC-V: Add vsmul.vv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vsmul_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vv_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:30:32 +0000 (14:30 +0800)]
RISC-V: Add vsmul.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vsmul_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tum_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tum_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tum_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tum_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tum_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tum_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tumu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tumu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tumu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tumu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tumu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsmul_vx_tumu_rv64-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:29:21 +0000 (14:29 +0800)]
RISC-V: Add vssra.vv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vssra_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vv_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:27:38 +0000 (14:27 +0800)]
RISC-V: Add vssra.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vssra_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vssra_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:26:07 +0000 (14:26 +0800)]
RISC-V: Add vssrl.vv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vssrl_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vv_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:24:46 +0000 (14:24 +0800)]
RISC-V: Add vssrl.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vssrl_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vssrl_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:21:31 +0000 (14:21 +0800)]
RISC-V: Add fixed-point support
gcc/ChangeLog:
* config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
(class vnclip): Ditto.
(BASE): Ditto.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
(vasub): Ditto.
(vaaddu): Ditto.
(vasubu): Ditto.
(vsmul): Ditto.
(vssra): Ditto.
(vssrl): Ditto.
(vnclipu): Ditto.
(vnclip): Ditto.
* config/riscv/vector-iterators.md (su): Add instruction.
(aadd): Ditto.
(vaalu): Ditto.
* config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
(@pred_<sat_op><mode>_scalar): Ditto.
(*pred_<sat_op><mode>_scalar): Ditto.
(*pred_<sat_op><mode>_extended_scalar): Ditto.
(@pred_narrow_clip<v_su><mode>): Ditto.
(@pred_narrow_clip<v_su><mode>_scalar): Ditto.
Gerald Pfeifer [Sat, 11 Feb 2023 14:58:15 +0000 (15:58 +0100)]
libstdc++: Change www.unix.org to unix.org
www.unix.org now redirects to unix.org.
libstdc++-v3/ChangeLog:
* doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
* doc/html/manual/facets.html: Regenerate.
Ju-Zhe Zhong [Thu, 9 Feb 2023 22:02:14 +0000 (06:02 +0800)]
RISC-V: Add vmerge C++ API test
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmerge_vvm-1.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm-2.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm-3.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm-4.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm-5.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm-6.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm_tu-1.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm_tu-2.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm_tu-3.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm_tu-4.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm_tu-5.C: New test.
* g++.target/riscv/rvv/base/vmerge_vvm_tu-6.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmerge_vxm_tu_rv64-3.C: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 22:01:03 +0000 (06:01 +0800)]
RISC-V: Add vncvt/vmv C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmv_v-1.C: New test.
* g++.target/riscv/rvv/base/vmv_v_tu-1.C: New test.
* g++.target/riscv/rvv/base/vmv_v_x_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmv_v_x_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmv_v_x_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmv_v_x_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmv_v_x_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmv_v_x_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vncvt_x-1.C: New test.
* g++.target/riscv/rvv/base/vncvt_x-2.C: New test.
* g++.target/riscv/rvv/base/vncvt_x-3.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_mu-1.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_mu-2.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_mu-3.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tu-1.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tu-2.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tu-3.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tum-1.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tum-2.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tum-3.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vncvt_x_tumu-3.C: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:59:43 +0000 (05:59 +0800)]
RISC-V: Add vnsra C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vnsra_vv-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnsra_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:58:35 +0000 (05:58 +0800)]
RISC-V: Add vnsrl C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vnsrl_vv-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnsrl_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:57:13 +0000 (05:57 +0800)]
RISC-V: Add vmerge C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmerge-1.c: New test.
* gcc.target/riscv/rvv/base/vmerge-2.c: New test.
* gcc.target/riscv/rvv/base/vmerge-3.c: New test.
* gcc.target/riscv/rvv/base/vmerge-4.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm-1.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm-2.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm-3.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm-4.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm-5.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm-6.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm_tu-4.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm_tu-5.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vvm_tu-6.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmerge_vxm_tu_rv64-3.c: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:56:12 +0000 (05:56 +0800)]
RISC-V: Add vmv.v.x C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmv_v_x_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_x_tu_rv64-3.c: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:55:02 +0000 (05:55 +0800)]
RISC-V: Add vmv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmv_v_v-1.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_v-2.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_v-3.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_v_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_v_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vmv_v_v_tu-3.c: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:53:54 +0000 (05:53 +0800)]
RISC-V: Add vncvt C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vncvt_x-1.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x-2.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x-3.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_m-1.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_m-2.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_m-3.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vncvt_x_tumu-3.c: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:52:41 +0000 (05:52 +0800)]
RISC-V: Add vnsra C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vnsra_wv-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsra_wx_tumu-3.c: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:50:19 +0000 (05:50 +0800)]
RISC-V: Add vnsrl C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vnsrl_wv-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vnsrl_wx_tumu-3.c: New test.
Ju-Zhe Zhong [Thu, 9 Feb 2023 21:45:44 +0000 (05:45 +0800)]
RISC-V: Add vnsrl/vnsra/vncvt/vmerge/vmv C/C++ support
gcc/ChangeLog:
* config/riscv/constraints.md (Wbr): Remove unused constraint.
* config/riscv/predicates.md: Fix move operand predicate.
* config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
(class vncvt_x): Ditto.
(class vmerge): Ditto.
(class vmv_v): Ditto.
(BASE): Ditto.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
(vsrl): Ditto.
(vnsrl): Ditto.
(vnsra): Ditto.
(vncvt_x): Ditto.
(vmerge): Ditto.
(vmv_v): Ditto.
* config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
(struct move_def): Ditto.
(SHAPE): Ditto.
* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
* config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
(DEF_RVV_WEXTU_OPS): Ditto
* config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
(v_v): Ditto.
(v_x): Ditto.
(x_w): Ditto.
(x): Ditto.
* config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
* config/riscv/vector-iterators.md (nmsac):New iterator.
(nmsub): New iterator.
* config/riscv/vector.md (@pred_merge<mode>): New pattern.
(@pred_merge<mode>_scalar): New pattern.
(*pred_merge<mode>_scalar): New pattern.
(*pred_merge<mode>_extended_scalar): New pattern.
(@pred_narrow_<optab><mode>): New pattern.
(@pred_narrow_<optab><mode>_scalar): New pattern.
(@pred_trunc<mode>): New pattern.
Ju-Zhe Zhong [Wed, 8 Feb 2023 20:58:37 +0000 (04:58 +0800)]
RISC-V: Add vmsbc C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmsbc_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vvm-1.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vvm-2.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vvm-3.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vxm_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vxm_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vxm_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vxm_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vxm_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsbc_vxm_rv64-3.C: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 20:57:26 +0000 (04:57 +0800)]
RISC-V: Add vmadc C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vmadc_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmadc_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmadc_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmadc_vvm-1.C: New test.
* g++.target/riscv/rvv/base/vmadc_vvm-2.C: New test.
* g++.target/riscv/rvv/base/vmadc_vvm-3.C: New test.
* g++.target/riscv/rvv/base/vmadc_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmadc_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmadc_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmadc_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmadc_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmadc_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmadc_vxm_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmadc_vxm_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmadc_vxm_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmadc_vxm_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmadc_vxm_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmadc_vxm_rv64-3.C: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 20:56:15 +0000 (04:56 +0800)]
RISC-V: Add vmsbc C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmsbc-1.c: New test.
* gcc.target/riscv/rvv/base/vmsbc-2.c: New test.
* gcc.target/riscv/rvv/base/vmsbc-3.c: New test.
* gcc.target/riscv/rvv/base/vmsbc-4.c: New test.
* gcc.target/riscv/rvv/base/vmsbc-5.c: New test.
* gcc.target/riscv/rvv/base/vmsbc-6.c: New test.
* gcc.target/riscv/rvv/base/vmsbc-7.c: New test.
* gcc.target/riscv/rvv/base/vmsbc-8.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vvm-1.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vvm-2.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vvm-3.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vxm_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vxm_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vxm_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vxm_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vxm_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsbc_vxm_rv64-3.c: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 20:54:48 +0000 (04:54 +0800)]
RISC-V: Add vmadc C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vmadc-1.c: New test.
* gcc.target/riscv/rvv/base/vmadc-2.c: New test.
* gcc.target/riscv/rvv/base/vmadc-3.c: New test.
* gcc.target/riscv/rvv/base/vmadc-4.c: New test.
* gcc.target/riscv/rvv/base/vmadc-5.c: New test.
* gcc.target/riscv/rvv/base/vmadc-6.c: New test.
* gcc.target/riscv/rvv/base/vmadc-7.c: New test.
* gcc.target/riscv/rvv/base/vmadc-8.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vvm-1.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vvm-2.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vvm-3.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vxm_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vxm_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vxm_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vxm_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vxm_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmadc_vxm_rv64-3.c: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 20:52:36 +0000 (04:52 +0800)]
RISC-V: Add vmadc/vmsbc C/C++ API support
gcc/ChangeLog:
* config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
(class vmsbc): Ditto.
(BASE): Define new class.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
(vmsbc): Ditto.
* config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
New class.
(SHAPE): Ditto.
* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
* config/riscv/riscv-vector-builtins.cc
(function_expander::use_exact_insn): Adjust for new support
* config/riscv/riscv-vector-builtins.h
(function_base::has_merge_operand_p): New function.
* config/riscv/vector-iterators.md: New iterator.
* config/riscv/vector.md (@pred_madc<mode>): New pattern.
(@pred_msbc<mode>): Ditto.
(@pred_madc<mode>_scalar): Ditto.
(@pred_msbc<mode>_scalar): Ditto.
(*pred_madc<mode>_scalar): Ditto.
(*pred_madc<mode>_extended_scalar): Ditto.
(*pred_msbc<mode>_scalar): Ditto.
(*pred_msbc<mode>_extended_scalar): Ditto.
(@pred_madc<mode>_overflow): Ditto.
(@pred_msbc<mode>_overflow): Ditto.
(@pred_madc<mode>_overflow_scalar): Ditto.
(@pred_msbc<mode>_overflow_scalar): Ditto.
(*pred_madc<mode>_overflow_scalar): Ditto.
(*pred_madc<mode>_overflow_extended_scalar): Ditto.
(*pred_msbc<mode>_overflow_scalar): Ditto.
(*pred_msbc<mode>_overflow_extended_scalar): Ditto.
Ju-Zhe Zhong [Wed, 8 Feb 2023 02:47:25 +0000 (10:47 +0800)]
RISC-V: Add vadc C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vadc_vvm-1.C: New test.
* g++.target/riscv/rvv/base/vadc_vvm-2.C: New test.
* g++.target/riscv/rvv/base/vadc_vvm-3.C: New test.
* g++.target/riscv/rvv/base/vadc_vvm_tu-1.C: New test.
* g++.target/riscv/rvv/base/vadc_vvm_tu-2.C: New test.
* g++.target/riscv/rvv/base/vadc_vvm_tu-3.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vadc_vxm_tu_rv64-3.C: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 02:49:10 +0000 (10:49 +0800)]
RISC-V: Add vsbc C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vsbc_vvm-1.C: New test.
* g++.target/riscv/rvv/base/vsbc_vvm-2.C: New test.
* g++.target/riscv/rvv/base/vsbc_vvm-3.C: New test.
* g++.target/riscv/rvv/base/vsbc_vvm_tu-1.C: New test.
* g++.target/riscv/rvv/base/vsbc_vvm_tu-2.C: New test.
* g++.target/riscv/rvv/base/vsbc_vvm_tu-3.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsbc_vxm_tu_rv64-3.C: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 02:34:30 +0000 (10:34 +0800)]
RISC-V: Add vsbc.vvm/vsbc.vxm C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vsbc-1.c: New test.
* gcc.target/riscv/rvv/base/vsbc-2.c: New test.
* gcc.target/riscv/rvv/base/vsbc-3.c: New test.
* gcc.target/riscv/rvv/base/vsbc-4.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vvm-1.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vvm-2.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vvm-3.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vvm_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vvm_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vvm_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vsbc_vxm_tu_rv64-3.c: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 02:32:29 +0000 (10:32 +0800)]
RISC-V: Add vadc.vvm/vadc.vxm C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vadc-1.c: New test.
* gcc.target/riscv/rvv/base/vadc-2.c: New test.
* gcc.target/riscv/rvv/base/vadc-3.c: New test.
* gcc.target/riscv/rvv/base/vadc-4.c: New test.
* gcc.target/riscv/rvv/base/vadc_vvm-1.c: New test.
* gcc.target/riscv/rvv/base/vadc_vvm-2.c: New test.
* gcc.target/riscv/rvv/base/vadc_vvm-3.c: New test.
* gcc.target/riscv/rvv/base/vadc_vvm_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vadc_vvm_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vadc_vvm_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vadc_vxm_tu_rv64-3.c: New test.
Ju-Zhe Zhong [Wed, 8 Feb 2023 02:30:24 +0000 (10:30 +0800)]
RISC-V: Add vadc/vsbc C/C++ API support
gcc/ChangeLog:
* config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
* config/riscv/riscv-v.cc (simm32_p): Ditto.
* config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
(class vsbc): Ditto.
(BASE): Ditto.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
(vsbc): Ditto.
* config/riscv/riscv-vector-builtins-shapes.cc
(struct no_mask_policy_def): Ditto.
(SHAPE): Ditto.
* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
* config/riscv/riscv-vector-builtins.cc
(rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
(rvv_arg_type_info::get_tree_type): Ditto.
(function_expander::use_exact_insn): Ditto.
* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
(function_base::use_mask_predication_p): New function.
* config/riscv/vector-iterators.md: New iterator.
* config/riscv/vector.md (@pred_adc<mode>): New pattern.
(@pred_sbc<mode>): Ditto.
(@pred_adc<mode>_scalar): Ditto.
(@pred_sbc<mode>_scalar): Ditto.
(*pred_adc<mode>_scalar): Ditto.
(*pred_adc<mode>_extended_scalar): Ditto.
(*pred_sbc<mode>_scalar): Ditto.
(*pred_sbc<mode>_extended_scalar): Ditto.
Ju-Zhe Zhong [Tue, 7 Feb 2023 07:49:16 +0000 (15:49 +0800)]
RISC-V: allow vx instruction use "zero" as scalar register.
li a5,0
vdiv.vx v0,v1,a5 =======> vdiv.vx v0,v1,zero
gcc/ChangeLog:
* config/riscv/vector.md: use "zero" reg.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/binop_vx_constraint-121.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:54:25 +0000 (14:54 +0800)]
RISC-V: Add vwadd v C++ api test
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwadd_vv-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:53:30 +0000 (14:53 +0800)]
RISC-V: Add vwadd.w C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwadd_wv-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwadd_wx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:51:55 +0000 (14:51 +0800)]
RISC-V: Add vwaddu.v C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwaddu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:50:45 +0000 (14:50 +0800)]
RISC-V: Add vwaddu.w c++ API TESTS
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwaddu_wv-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwaddu_wx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:49:13 +0000 (14:49 +0800)]
RISC-V: Add vwcvt C++ api test
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwcvt_x-1.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x-2.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x-3.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwcvt_x_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x-1.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x-2.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x-3.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwcvtu_x_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:48:05 +0000 (14:48 +0800)]
RISC-V: Add vwmul.v C++ api TETS
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwmul_vv-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwmul_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:46:48 +0000 (14:46 +0800)]
RISC-V: Add vwmulsu.v C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwmulsu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulsu_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:45:35 +0000 (14:45 +0800)]
RISC-V: Add vwmulu C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwmulu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwmulu_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:44:26 +0000 (14:44 +0800)]
RISC-V: Add vwsub.v C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwsub_vv-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:43:05 +0000 (14:43 +0800)]
RISC-V: Add vwsub.w C++ api TESTS
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwsub_wv-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsub_wx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:41:45 +0000 (14:41 +0800)]
RISC-V: Add vwsubu.v C++ API test
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwsubu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:40:38 +0000 (14:40 +0800)]
RISC-V: Add vwsubu.w C++ api TETS
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vwsubu_wv-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vwsubu_wx_tumu-3.C: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:39:27 +0000 (14:39 +0800)]
RISC-V: Add constraint tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/binop_vx_constraint-120.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:38:07 +0000 (14:38 +0800)]
RISC-V: Add vwadd.v C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwadd_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:36:55 +0000 (14:36 +0800)]
RISC-V: Add vwadd.w C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwadd_wv-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwadd_wx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:35:49 +0000 (14:35 +0800)]
RISC-V: Add vwaddu.v C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwaddu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:34:47 +0000 (14:34 +0800)]
RISC-V: Add vwaddu.w C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwaddu_wv-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwaddu_wx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:33:28 +0000 (14:33 +0800)]
RISC-V: Add vwcvt C API test
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwcvt_x-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvt_x_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwcvtu_x_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:32:24 +0000 (14:32 +0800)]
RISC-V: Add vwmul C api tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwmul_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmul_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:30:51 +0000 (14:30 +0800)]
RISC-V: Add vwmulsu C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwmulsu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulsu_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:29:16 +0000 (14:29 +0800)]
RISC-V: Add vwmulu C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwmulu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vv_tumu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwmulu_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:28:00 +0000 (14:28 +0800)]
RISC-V: Add vwsub.vv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwsub_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vv_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:27:02 +0000 (14:27 +0800)]
RISC-V: Add vwsub.vx C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwsub_vx-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_vx_tumu-3.c: New test.
Ju-Zhe Zhong [Tue, 7 Feb 2023 06:25:54 +0000 (14:25 +0800)]
RISC-V: Add vwsub.wv C API tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/vwsub_wv-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vwsub_wv_tumu-3.c: New test.
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.