Richard Sandiford [Mon, 13 Feb 2023 21:13:59 +0000 (21:13 +0000)]
lra: Replace subregs in bare uses & clobbers [PR108681]
In this PR we had a write to one vector of a 4-vector tuple.
The vector had mode V1DI, and the target doesn't provide V1DI
moves, so this was converted into:
(clobber (subreg:V1DI (reg/v:V4x1DI 92 [ b ]) 24))
followed by a DImode move. (The clobber isn't really necessary
or helpful for a single word, but would be for wider moves.)
The subreg in the clobber survived until after RA:
(clobber (subreg:V1DI (reg/v:V4x1DI 34 v2 [orig:92 b ] [92]) 24))
IMO this isn't well-formed. If a subreg of a hard register simplifies
to a hard register, it should be replaced by the hard register. If the
subreg doesn't simplify, then target-independent code can't be sure
which parts of the register are affected and which aren't. A clobber
of such a subreg isn't useful and (again IMO) should just be removed.
Conversely, a use of such a subreg is effectively a use of the whole
inner register.
LRA has code to simplify subregs of hard registers, but it didn't
handle bare uses and clobbers. The patch extends it to do that.
One question was whether the final_p argument to alter_subregs
should be true or false. True is IMO dangerous, since it forces
replacements that might not be valid from a dataflow perspective,
and uses and clobbers only exist for dataflow. As said above,
I think the correct way of handling a failed simplification would
be to delete clobbers and replace uses of subregs with uses of
the inner register. But I didn't want to write untested code
to do that.
In the PR, the clobber caused an infinite loop in DCE, because
of a disagreement about what effect the clobber had. But for
the reasons above, I think that was GIGO rather than a bug in
DF or DCE.
gcc/
PR rtl-optimization/108681
* lra-spills.cc (lra_final_code_change): Extend subreg replacement
code to handle bare uses and clobbers.
gcc/testsuite/
PR rtl-optimization/108681
* gcc.target/aarch64/pr108681.c: New test.
Vladimir N. Makarov [Mon, 13 Feb 2023 21:05:04 +0000 (16:05 -0500)]
RA: Clear reg equiv caller_save_p flag when clearing defined_p flag
IRA can invalidate initially setup equivalence in setup_reg_equiv.
Flag caller_saved was not cleared during invalidation although
init_insns were cleared. It resulted in segmentation fault in
get_equiv. Clearing the flag solves the problem. For more
precaution I added clearing the flag in other places too although it
might be not necessary.
PR rtl-optimization/108774
gcc/ChangeLog:
* ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
caller_save_p flag when clearing defined_p flag.
(setup_reg_equiv): Ditto.
* lra-constraints.cc (lra_constraints): Ditto.
gcc/testsuite/ChangeLog:
* gcc.target/i386/pr108774.c: New.
Harald Anlauf [Mon, 13 Feb 2023 21:02:44 +0000 (22:02 +0100)]
Fortran: error recovery after invalid use of CLASS variable [PR103475]
gcc/fortran/ChangeLog:
PR fortran/103475
* primary.cc (gfc_expr_attr): Avoid NULL pointer dereference for
invalid use of CLASS variable.
gcc/testsuite/ChangeLog:
PR fortran/103475
* gfortran.dg/pr103475.f90: New test.
Uros Bizjak [Mon, 13 Feb 2023 16:17:46 +0000 (17:17 +0100)]
i386: Relax extract location operand mode requirements [PR108516]
Combine pass simplifies zero-extend of a zero-extract to:
Trying 16 -> 6:
16: r86:QI#0=zero_extract(r87:HI,0x8,0x8)
REG_DEAD r87:HI
6: r84:SI=zero_extend(r86:QI)
REG_DEAD r86:QI
Failed to match this instruction:
(set (reg:SI 84 [ s.e2 ])
(zero_extract:SI (reg:HI 87)
(const_int 8 [0x8])
(const_int 8 [0x8])))
which fails instruction recognision. The pattern is valid, since there
is no requirement on the mode of the location operand.
The patch relaxes location operand mode requirements of *extzv and *extv
insn patterns to allow all supported integer modes. The patch also
adds support for a related sign-extend from zero-extracted operand.
2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
gcc/ChangeLog:
PR target/108516
* config/i386/predicates.md (extr_register_operand):
New special predicate.
* config/i386/i386.md (*extv<mode>): Use extr_register_operand
as operand 1 predicate.
(*exzv<mode>): Ditto.
(*extendqi<SWI24:mode>_ext_1): New insn pattern.
gcc/testsuite/ChangeLog:
PR target/108516
* gcc.target/i386/pr108516-1.c: New test.
* gcc.target/i386/pr108516-2.c: Ditto.
Gaius Mulley [Mon, 13 Feb 2023 19:06:36 +0000 (19:06 +0000)]
Cleanup libgm2/libm2iso/RTco.cc
This patch removes the macro tprintf sizeof nop hack and replaces
it with tprintf (...).
libgm2/ChangeLog:
* libm2iso/RTco.cc (tprintf): Replace definition.
Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
Rimvydas Jasinskas [Sun, 12 Feb 2023 06:16:51 +0000 (06:16 +0000)]
Fortran: Add !GCC$ attributes NOINLINE,NORETURN,WEAK
gcc/fortran/ChangeLog:
* decl.cc: Add EXT_ATTR_NOINLINE, EXT_ATTR_NORETURN, EXT_ATTR_WEAK.
* gfortran.h (ext_attr_id_t): Ditto.
* gfortran.texi (GCC$ ATTRIBUTES): Document them.
* trans-decl.cc (build_function_decl): Apply them.
gcc/testsuite/ChangeLog:
* gfortran.dg/noinline.f90: New test.
* gfortran.dg/noreturn-1.f90: New test.
* gfortran.dg/noreturn-2.f90: New test.
* gfortran.dg/noreturn-3.f90: New test.
* gfortran.dg/noreturn-4.f90: New test.
* gfortran.dg/noreturn-5.f90: New test.
* gfortran.dg/weak-1.f90: New test.
Signed-off-by: Rimvydas Jasinskas <rimvydas.jas@gmail.com>
Richard Biener [Mon, 13 Feb 2023 13:41:24 +0000 (14:41 +0100)]
tree-optimization/28614 - high FRE time for gcc.c-torture/compile/
20001226-1.c
I noticed that for gcc.c-torture/compile/
20001226-1.c even -O1 has
around 50% of the compile-time accounted to FRE. That's because
we have blocks with a high incoming edge count and
can_track_predicate_on_edge visits all of them even though it could
stop after the second. The function is also called repeatedly for
the same edge. The following fixes this and reduces the FRE time
to 1% on the testcase.
PR tree-optimization/28614
* tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
walking all edges in most cases.
(vn_nary_op_insert_pieces_predicated): Avoid repeated
calls to can_track_predicate_on_edge unless checking is
enabled.
(process_bb): Instead call it once here for each edge
we register possibly multiple predicates on.
Richard Biener [Mon, 13 Feb 2023 09:41:51 +0000 (10:41 +0100)]
tree-optimization/108691 - indirect calls to setjmp
DCE now chokes on indirect setjmp calls becoming direct because
that exposes them too late to be subject to abnormal edge creation.
The following patch honors gimple_call_ctrl_altering for those and
_not_ treat formerly indirect calls to setjmp as calls to setjmp
in notice_special_calls.
Unfortunately there's no way to have an indirect call to setjmp
properly annotated (the returns_twice attribute is ignored on types).
RTL expansion late discovers returns-twice for the purpose of
adding REG_SETJMP notes and also sets ->calls_setjmp
(instead of asserting it is set). There's no good way to
transfer proper knowledge around here so I'm using ->calls_setjmp
as a flag to indicate whether gimple_call_ctrl_altering_p was set.
PR tree-optimization/108691
* tree-cfg.cc (notice_special_calls): When the CFG is built
honor gimple_call_ctrl_altering_p.
* cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
temporarily if the call is not control-altering.
* calls.cc (emit_call_1): Do not add REG_SETJMP if
cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
* gcc.dg/pr108691.c: New testcase.
Stefan Schulze Frielinghaus [Mon, 13 Feb 2023 14:33:38 +0000 (15:33 +0100)]
IBM zSystems: Do not propagate scheduler state across basic blocks [PR108102]
So far we propagate scheduler state across basic blocks within EBBs and
reset the state otherwise. In certain circumstances the entry block of
an EBB might be empty, i.e., no_real_insns_p is true. In those cases
scheduler state is not reset and subsequently wrong state is propagated
to following blocks of the same EBB.
Since the performance benefit of tracking state across basic blocks is
questionable on modern hardware, simply reset the state for each basic
block.
Fix also resetting f{p,x}d_longrunning.
gcc/ChangeLog:
PR target/108102
* config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
(struct s390_sched_state): Initialise to zero.
(s390_sched_variable_issue): For better debuggability also emit
the current side.
(s390_sched_init): Unconditionally reset scheduler state.
Jonathan Yong [Sat, 11 Feb 2023 08:30:55 +0000 (08:30 +0000)]
builtin-declaration-mismatch-7: fix LLP64 targets
gcc/testsuite/ChangeLog:
* gcc.dg/Wbuiltin-declaration-mismatch-7.c: Use (long )*
regex pattern to allow long long instead of just long.
Signed-off-by: Jonathan Yong <10walls@gmail.com>
Richard Sandiford [Mon, 13 Feb 2023 11:38:45 +0000 (11:38 +0000)]
ifcvt: Fix regression in aarch64/fcsel_1.c
aarch64/fcsel_1.c contains:
double
f_2 (double a, double b, double c, double d)
{
if (a > b)
return c;
else
return d;
}
which started failing in the GCC 12 timeframe. When it passed,
the RTL had the form:
[A]
(set (reg ret) (reg c))
(set (pc) (if_then_else (gt ...) (label_ref ret) (pc)))
edge to ret, fallthru to else
else:
(set (reg ret) (reg d))
fallthru to ret
ret:
...exit...
i.e. a branch around. Now the RTL has form:
[B]
(set (reg ret) (reg d))
(set (pc) (if_then_else (gt ...) (label_ref then) (pc)))
edge to then, fallthru to ret
ret:
...exit...
then:
(set (reg ret) (reg c))
edge to ret
i.e. a branch out.
Both are valid, of course, and there's no easy way to predict
which we'll get. But ifcvt canonicalises its representation on:
if (cond) goto fallthru else goto non-fallthru
That is, it canoncalises on the branch-around case for half-diamonds.
It therefore wants to invert the comparison in [B] to get:
if (...) goto ret else goto then
But that isn't possible for strict FP gt, so the optimisation fails.
Canonicalising on the branch-around case seems like the wrong choice for
half diamonds. The natural way of expressing a conditional branch is
for the label_ref to be the "then" destination and pc to be the "else"
destination. And the natural choice of condition seems to be the one
under which extra stuff *is* done, rather than the one under which extra
stuff *isn't* done. But that decision goes back at least 20 years and
it doesn't seem like a good idea to change it in stage 4.
This patch instead allows the internal structure to store the
condition in inverted form. For simplicity it handles only
conditional moves, which is the one case that is needed
to fix the known regression. (There are probably unknown
regressions too, but still.)
gcc/
* ifcvt.h (noce_if_info::cond_inverted): New field.
* ifcvt.cc (cond_move_convert_if_block): Swap the then and else
values when cond_inverted is true.
(noce_find_if_block): Allow the condition to be inverted when
handling conditional moves.
Stefan Schulze Frielinghaus [Mon, 13 Feb 2023 11:06:44 +0000 (12:06 +0100)]
IBM zSystems: Fix predicate execute_operation
Use constrain_operands in order to check whether there exists a valid
alternative instead of extract_constrain_insn which ICEs in case no
alternative is found.
gcc/ChangeLog:
* config/s390/predicates.md (execute_operation): Use
constrain_operands instead of extract_constrain_insn in order to
determine wheter there exists a valid alternative.
Claudiu Zissulescu [Wed, 1 Feb 2023 11:02:17 +0000 (13:02 +0200)]
arc: Don't use millicode thunks unless asked for.
ARC has enter_s/leave_s instructions which can save/restore the entire
function context. It is not needed the millicode thunks anylonger when
compiling for size, thus, make their usage optional.
gcc/
* common/config/arc/arc-common.cc (arc_option_optimization_table):
Remove millicode from list.
gcc/testsuite/
* gcc.target/arc/milli-1.c: Update test.
Martin Liska [Mon, 13 Feb 2023 09:15:55 +0000 (10:15 +0100)]
docs: document new param
gcc/ChangeLog:
* doc/invoke.texi: Document ira-simple-lra-insn-threshold.
Richard Biener [Fri, 10 Feb 2023 09:28:29 +0000 (10:28 +0100)]
tree-optimization/106722 - fix CD-DCE edge marking
The following fixes a latent issue when we mark control edges but
end up with marking a block with no stmts necessary. In this case
we fail to mark dependent control edges of that block.
PR tree-optimization/106722
* tree-ssa-dce.cc (mark_last_stmt_necessary): Return
whether we marked a stmt.
(mark_control_dependent_edges_necessary): When
mark_last_stmt_necessary didn't mark any stmt make sure
to mark its control dependent edges.
(propagate_necessity): Likewise.
* gcc.dg/torture/pr108737.c: New testcase.
Kito Cheng [Fri, 21 Oct 2022 09:37:01 +0000 (17:37 +0800)]
RISC-V: Handle vlenb correctly in unwinding
gcc/ChangeLog:
* config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
(DWARF_FRAME_REGISTERS): New.
(DWARF_REG_TO_UNWIND_COLUMN): New.
libgcc/ChangeLog:
* config.host (riscv*-*-*): Add config/riscv/value-unwind.h.
* config/riscv/value-unwind.h: New.
GCC Administrator [Mon, 13 Feb 2023 00:18:02 +0000 (00:18 +0000)]
Daily bump.
Gerald Pfeifer [Sun, 12 Feb 2023 22:35:40 +0000 (23:35 +0100)]
libstdc++: Tweak link to N1780 (C++ standard)
libstdc++-v3/ChangeLog:
* doc/xml/manual/containers.xml: Tweak a link to N1780
(C++ standard).
* doc/html/manual/associative.html: Regenerate.
Gerald Pfeifer [Sun, 12 Feb 2023 11:02:25 +0000 (12:02 +0100)]
doc: Remove direct reference to configure/build docs
This has been broken for years (if not forever), both when it comes
to onlinedocs and local installations.
gcc/ChangeLog:
* doc/sourcebuild.texi: Remove (broken) direct reference to
"The GNU configure and build system".
Jin Ma [Fri, 3 Feb 2023 09:42:59 +0000 (17:42 +0800)]
RISC-V: Change the generation mode of ADJUST_SP_RTX from gen_insn to gen_SET.
The gen_insn method is used to generate ADJUST_SP_RTX here, which has certain
potential risks:
When the architecture adds pre-processing to `define_insn "adddi3"`, such as
`define_expend "adddi3"`, the gen_expand will be automatically called here,
causing the patern to emit directly, which will cause insn to enter REG_NOTE
for `DWARF` instead of patern.
The following error REG_NOTE occurred:
error: invalid rtl sharing found in the insn:
(insn 19 3 20 2 (parallel [
...
])
(expr_list:REG_CFA_ADJUST_CFA
(insn 18 0 0 (set (reg/f:DI 2 sp)
(plus:DI (reg/f:DI 2 sp)
(const_int -16 [0xfffffffffffffff0]))) -1
(nil))))
In fact, the correct one should be the following:
(insn 19 3 20 2 (parallel [
...
])
(expr_list:REG_CFA_ADJUST_CFA
(set (reg/f:DI 2 sp)
(plus:DI (reg/f:DI 2 sp)
(const_int -16 [0xfffffffffffffff0])))))
Following the treatment of arm or other architectures, it is more reasonable to
use gen_SET here.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
gen_add3_insn to gen_rtx_SET.
(riscv_adjust_libcall_cfi_epilogue): Likewise.
Ju-Zhe Zhong [Fri, 10 Feb 2023 07:03:14 +0000 (15:03 +0800)]
RISC-V: Add vaadd.vv C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vaadd_vv-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vv_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 07:02:13 +0000 (15:02 +0800)]
RISC-V: Add vaadd.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vaadd_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaadd_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 07:00:55 +0000 (15:00 +0800)]
RISC-V: Add vaaddu.vv C++ api tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vaaddu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vv_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:59:45 +0000 (14:59 +0800)]
RISC-V: Add vaaddu.vx C++ Api tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vaaddu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vaaddu_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:58:40 +0000 (14:58 +0800)]
RISC-V: Add vasub.vv C++ api tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vasub_vv-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vv-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vv-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vv_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:57:30 +0000 (14:57 +0800)]
RISC-V: Add vasub.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vasub_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasub_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:56:15 +0000 (14:56 +0800)]
RISC-V: Add vasubu.vv C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vasubu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vv_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:55:02 +0000 (14:55 +0800)]
RISC-V: Add vasubu.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vasubu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vasubu_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:53:44 +0000 (14:53 +0800)]
RISC-V: Add vnclip C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vnclip_vv-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnclip_vx_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vv_tumu-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vnclipu_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:52:32 +0000 (14:52 +0800)]
RISC-V: Add vsmul.vv C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vsmul_vv-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vv_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:51:18 +0000 (14:51 +0800)]
RISC-V: Add vsmul.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vsmul_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tum_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tum_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tum_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tum_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tum_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tum_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tumu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tumu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tumu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tumu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tumu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vsmul_vx_tumu_rv64-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:50:17 +0000 (14:50 +0800)]
RISC-V: Add vssra.vv C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vssra_vv-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vv-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vv-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vv_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:49:07 +0000 (14:49 +0800)]
RISC-V: Add vssra.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vssra_vx-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vx-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vx-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vssra_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:47:58 +0000 (14:47 +0800)]
RISC-V: Add vssrl.vv C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vssrl_vv-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tu-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tu-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tu-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tum-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tum-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tum-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vv_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:46:34 +0000 (14:46 +0800)]
RISC-V: Add vssrl.vx C++ API tests
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/vssrl_vx-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_mu-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_mu-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_mu-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tu-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tu-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tu-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tum-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tum-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tum-3.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tumu-1.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tumu-2.C: New test.
* g++.target/riscv/rvv/base/vssrl_vx_tumu-3.C: New test.
Ju-Zhe Zhong [Fri, 10 Feb 2023 06:45:16 +0000 (14:45 +0800)]
RISC-V: Add vaadd.vv C api tests
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/binop_vx_constraint-122.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tu-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tu-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tu-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tum-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tum-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tum-3.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tumu-1.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tumu-2.c: New test.
* gcc.target/riscv/rvv/base/vaadd_vv_tumu-3.c: New test.
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.