Commit graph

198799 commits

Author SHA1 Message Date
Jakub Jelinek
0b9bd33d69 libgomp: Fix up some typos in libgomp.texi
I decided to check for repeated the the in libgomp and noticed
there are several occurrences of a typo theads rather than threads
in libgomp.texi.

2023-02-16  Jakub Jelinek  <jakub@redhat.com>

	* libgomp.texi: Fix typos - theads -> threads.
2023-02-16 12:15:03 +01:00
Jakub Jelinek
9d71955f38 libgomp: Fix comment typo
I saw
FAIL: libgomp.fortran/target-nowait-array-section.f90   -O  execution test
in my last x86_64-linux bootstrap.  From quick skimming, it might be just
unreliable test, which assumes that asynchronous execution wouldn't produce
ordered sequence, but can't it happen even with asynchronous execution?

That said, while skimming the test, I've noticed a comment typo and
this patch fixes that up.

2023-02-16  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/libgomp.fortran/target-nowait-array-section.f90: Fix
	comment typo and improve its wording.
2023-02-16 12:10:19 +01:00
Jonathan Wakely
dc79eba72b libstdc++: Fix uses of non-reserved names in headers
The non-reserved names 'val' and 'dest' were being used in our headers
but haven't been added to the 17_intro/names.cc test. That's because
they are used by <asm-generic/posix_types.h> and <netinet/tcp.h>
respecitvely on glibc-based systems.

libstdc++-v3/ChangeLog:

	* include/bits/fs_ops.h (create_directory): Use reserved name
	for parameter.
	* include/bits/ranges_algo.h (__contains_subrange_fn):
	Likewise.
	* include/bits/regex_automaton.h (_State_base::_M_print):
	Likewise.
	* include/bits/regex_automaton.tcc(_State_base::_M_print):
	Likewise.
	* include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
	* include/experimental/bits/fs_ops.h (create_directory):
	Likewise.
	* include/std/mutex (timed_mutex::_M_clocklock): Likewise.
	(recursive_timed_mutex:_M_clocklock): Likewise.
	* include/std/tuple (basic_common_reference): Likewise.
	* libsupc++/cxxabi_init_exception.h
	(__cxa_init_primary_exception): Likewise.
	* testsuite/17_intro/names.cc: Add checks.
2023-02-16 10:24:45 +00:00
Jakub Jelinek
55db240d28 reassoc: Fix up (ab) handling in eliminate_redundant_comparison [PR108783]
The following testcase ICEs because eliminate_redundant_comparison sees
redundant comparisons in &&/|| where the comparison has (ab) SSA_NAME,
maybe_fold_{and,or}_comparisons optimizes them into a single comparison
and build_and_add_sum emits a new comparison close to the definition
operands, which in this case is before a returns_twice call (which is
invalid).  Generally reassoc just punts on (ab) SSA_NAMEs, declares them
non-reassociable etc., so the second half of this patch does that.

Though we can do better in this case; the function has special code
when maybe_fold_{and,or}_comparisons returns INTEGER_CST (false/true)
or when what it returns is the same as curr->op (the first of the
comparisons we are considering) - in that case we just remove the
second one and keep the first one.  The reason it doesn't match is that
curr->op is a SSA_NAME whose SSA_NAME_DEF_STMT is checked to be a
comparison, in this case _42 = a_1(ab) != 0 and the other comparison
is also like that.  maybe_fold_{and,or}_comparisons looks through the
definitions though and so returns a_1(ab) != 0 as tree.
So the first part of the patch checks whether that returned comparison
isn't the same as the curr->op comparison and if yes, it just overrides
t back to curr->op so that its SSA_NAME is reused.  In that case we can
handle even (ab) in {,new}op{1,2} because we don't create a new comparison
of that, just keep using the existing one.  And t can't be (ab) because
otherwise it wouldn't be considered a reassociable operand.

The (ab) checks are needed say when we have a_1(ab) == 42 || a_1(ab) > 42
kind of comparisons where maybe_fold_{and,or}_comparisons returns a new
comparison not existing in the IL yet.

2023-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/108783
	* tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
	is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
	t to curr->op.  Otherwise, punt if either newop1 or newop2 are
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.

	* gcc.c-torture/compile/pr108783.c: New test.
2023-02-16 10:41:18 +01:00
Richard Biener
441c466fd4 tree-optimization/108791 - checking ICE with sloppy ADDR_EXPR
The following fixes a checking ICE by choosing a more appropriate
type for an ADDR_EXPR built by forwprop.

	PR tree-optimization/108791
	* tree-ssa-forwprop.cc (optimize_vector_load): Build
	the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
	type.

	* gcc.dg/torture/pr108791.c: New testcase.
2023-02-16 08:29:44 +01:00
Hans-Peter Nilsson
384dedaf65 objs-gcc.sh: Only bootstrap if source-directory contains gcc
I use objs-gcc.sh as a preparatory step before calling
btest-gcc.sh in my scripts, for example my cris-elf
autotester.  I thought, why not use it for native builds
too.  Except that use, with binutils release-style tarballs
and a x86_64-pc-linux-gnu host, was broken.  Now that I look
at it, the script seems to have aged poorly...  Still,
there's a need for such a script to install stuff needed for
btest-gcc.sh (and to fix up stuff if needed), and this can
still be that script.  So, I prefer to fix show-stoppers for
common uses, while taking care to retain compatibility for
use that could possibly still work, with current sources.

A long time ago (before 2011, but after this script was
created in 2002, and used for a few years), the binutils
(and gdb and gcc) toplevel Makefile may have had a bootstrap
target that worked with binutils but didn't require gcc
sources to be present.  Now, you'll get an error (see
configure.ac line 1366 and on).  Let's just build the
default make-target when "bootstrap" is known to fail.
An alternative would be to fold this native
non-i686-pc-linux-gnu clause into the native
i686-pc-linux-gnu clause, as that seems to have been
originally intended as *the* single native clause, but
that'd require further edits (e.g. to remove install-dejagnu
and make gdb build conditional on gdb sources presence, to
work with binutils tarballs, and I'd also then prefer to
build not just ld, but also gas and binutils).

As it's a minimal obvious change required for current native
use with release-tarballs and git-checkout use(*), I'm
installing this as obvious.

*) Native i686-pc-linux-gnu remains broken for other use
than specially constructed combined trees where dejagnu is
included at the toplevel (i.e. historic Cygnus devo-type).

contrib/regression:
	* objs-gcc.sh: Only bootstrap if source-directory contains gcc.
2023-02-16 01:26:45 +01:00
Hans-Peter Nilsson
88e02a1de7 testsuite: Add CRIS to check_effective_target_lra non-LRA list
gcc/testsuite:

	* lib/target-supports.exp (check_effective_target_lra): Add CRIS
	as a non-LRA target.
2023-02-16 01:22:15 +01:00
GCC Administrator
29a3539193 Daily bump. 2023-02-16 00:18:19 +00:00
Eric Botcazou
a5dd99f7ef Fix PR target/90458
This is the incompatibility of -fstack-clash-protection with Windows SEH.
Now the Windows ports always enable TARGET_STACK_PROBE, which means that
the stack is always probed (out of line) so -fstack-clash-protection does
nothing more.

gcc/
	PR target/90458
	* config/i386/i386.cc (ix86_compute_frame_layout): Disable the
	effects of -fstack-clash-protection for TARGET_STACK_PROBE.
	(ix86_expand_prologue): Likewise.
2023-02-15 23:33:28 +01:00
Jan-Benedict Glaw
d6d3de7170 Fix an accidental double space
gcc/
	* config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
2023-02-15 23:00:46 +01:00
Steve Kargl
c75cbeba81 Fortran: error recovery on checking procedure argument intent [PR103608]
gcc/fortran/ChangeLog:

	PR fortran/103608
	* frontend-passes.cc (do_intent): Catch NULL pointer dereference on
	reference to invalid formal argument.

gcc/testsuite/ChangeLog:

	PR fortran/103608
	* gfortran.dg/pr103608.f90: New test.
2023-02-15 22:45:20 +01:00
Steve Kargl
a418129273 Fortran: error recovery on invalid assumed size reference [PR104554]
gcc/fortran/ChangeLog:

	PR fortran/104554
	* resolve.cc (check_assumed_size_reference): Avoid NULL pointer
	dereference.

gcc/testsuite/ChangeLog:

	PR fortran/104554
	* gfortran.dg/pr104554.f90: New test.
2023-02-15 22:22:14 +01:00
Uros Bizjak
a3e499430f i386: Relax extract location operand mode requirements
There is no requirement on the mode of the location operand, so any
supported integer mode is valid.  We can relax extract location
operand mode requirement of other patterns involving zero_extract RTX.

2023-02-15  Uroš Bizjak  <ubizjak@gmail.com>

gcc/ChangeLog:

	* config/i386/i386.md (*cmpqi_ext<mode>_1): Use
	int248_register_operand predicate in zero_extract sub-RTX.
	(*cmpqi_ext<mode>_2): Ditto.
	(*cmpqi_ext<mode>_3): Ditto.
	(*cmpqi_ext<mode>_4): Ditto.
	(*extzvqi_mem_rex64): Ditto.
	(*extzvqi): Ditto.
	(*insvqi_1_mem_rex64): Ditto.
	(@insv<mode>_1): Ditto.
	(*insvqi_1): Ditto.
	(*insvqi_2): Ditto.
	(*insvqi_3): Ditto.
	(*extendqi<SWI24:mode>_ext_1): Ditto.
	(*addqi_ext<mode>_1): Ditto.
	(*addqi_ext<mode>_2): Ditto.
	(*subqi_ext<mode>_2): Ditto.
	(*testqi_ext<mode>_1): Ditto.
	(*testqi_ext<mode>_2): Ditto.
	(*andqi_ext<mode>_1): Ditto.
	(*andqi_ext<mode>_1_cc): Ditto.
	(*andqi_ext<mode>_2): Ditto.
	(*<any_or:code>qi_ext<mode>_1): Ditto.
	(*<any_or:code>qi_ext<mode>_2): Ditto.
	(*xorqi_ext<mode>_1_cc): Ditto.
	(*negqi_ext<mode>_2): Ditto.
	(*ashlqi_ext<mode>_2): Ditto.
	(*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
2023-02-15 21:35:35 +01:00
David Malcolm
b03a10b0b2 analyzer: fix uninit false +ves [PR108664,PR108666,PR108725]
This patch updates poisoned_value_diagnostic so that, where possible,
it checks to see if the value is still poisoned along the execution
path seen during feasibility analysis, rather than just that seen
in the exploded graph.

Integration testing shows this reduction in the number of
false positives:
  -Wanalyzer-use-of-uninitialized-value: 191 -> 153 (-38)
where the changes happen in:
      coreutils-9.1: 34 -> 20 (-14)
         qemu-7.2.0: 78 -> 54 (-24)

gcc/analyzer/ChangeLog:
	PR analyzer/108664
	PR analyzer/108666
	PR analyzer/108725
	* diagnostic-manager.cc (epath_finder::get_best_epath): Add
	"target_stmt" param.
	(epath_finder::explore_feasible_paths): Likewise.
	(epath_finder::process_worklist_item): Likewise.
	(saved_diagnostic::calc_best_epath): Pass m_stmt to
	epath_finder::get_best_epath.
	* engine.cc (feasibility_state::maybe_update_for_edge): Move
	per-stmt logic to...
	(feasibility_state::update_for_stmt): ...this new function.
	* exploded-graph.h (feasibility_state::update_for_stmt): New decl.
	* feasible-graph.cc (feasible_node::get_state_at_stmt): New.
	* feasible-graph.h: Include "analyzer/exploded-graph.h".
	(feasible_node::get_state_at_stmt): New decl.
	* infinite-recursion.cc
	(infinite_recursion_diagnostic::check_valid_fpath_p): Update for
	vfunc signature change.
	* pending-diagnostic.h (pending_diagnostic::check_valid_fpath_p):
	Convert first param to a reference.  Add stmt param.
	* region-model.cc: Include "analyzer/feasible-graph.h".
	(poisoned_value_diagnostic::poisoned_value_diagnostic): Add
	"check_expr" param.
	(poisoned_value_diagnostic::check_valid_fpath_p): New.
	(poisoned_value_diagnostic::m_check_expr): New field.
	(region_model::check_for_poison): Attempt to supply a check_expr
	to the diagnostic
	(region_model::deref_rvalue): Add NULL for new check_expr param
	of poisoned_value_diagnostic.
	(region_model::get_or_create_region_for_heap_alloc): Don't reuse
	regions that are marked as TOUCHED.

gcc/testsuite/ChangeLog:
	PR analyzer/108664
	PR analyzer/108666
	PR analyzer/108725
	* gcc.dg/analyzer/coreutils-cksum-pr108664.c: New test.
	* gcc.dg/analyzer/coreutils-sum-pr108666.c: New test.
	* gcc.dg/analyzer/torture/uninit-pr108725.c: New test.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
2023-02-15 14:53:14 -05:00
Uros Bizjak
0979973c8e testsuite/i386: Cleanup target selectors in i386 target directory.
gcc/testsuite/ChangeLog:

2023-02-15  Uroš Bizjak  <ubizjak@gmail.com>

	* g++.target/i386/empty-class2.C (dg-additional-options): Remove.
	* gcc.target/i386/avx512fp16-reduce-op-2.c: Ditto.
	* gcc.target/i386/pr99464.c: Ditto.
	* gcc.target/i386/pr103541.c (dg-do): Compile for !ia32 target.
	* gcc.target/i386/pr108774.c (dg-do): Compile for lp64 target.
	* gcc.target/i386/pr85593.c (dg-do): Run for *-*-linux* target.
	* gcc.target/i386/pr98063.c: Ditto.
	* gcc.target/i386/pr90007.c (dg-do): Remove target selector.
	* gcc.target/i386/pr92841-2.c (dg-do): Remove unneeded curly braces.
	* gcc.target/i386/pr95464.c: Ditto.
	* gcc.target/i386/pr99530-1.c (dg-do): Compile for *-*-linux* target.
	* gcc.target/i386/pr99530-2.c: Ditto.
	* gcc.target/i386/pr99530-3.c: Ditto.
	* gcc.target/i386/pr99530-4.c: Ditto.
	* gcc.target/i386/pr99530-5.c: Ditto.
	* gcc.target/i386/pr99530-6.c: Ditto.
	* gcc.target/i386/pr99531.c (dg-do): Compile for !ia32 target.
2023-02-15 16:30:51 +01:00
Uros Bizjak
1f34cf9bce i386: Rename extr_register_operand to int248_register_operand
No functional changes.

gcc/ChangeLog:

2023-02-15  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (int248_register_operand):
	Rename from extr_register_operand.
	* config/i386/i386.md (*extv<mode>): Update for renamed predicate.
	(*extzx<mode>): Ditto.
	(*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
	(*ashl<mode>3_mask): Ditto.
	(*<any_shiftrt:insn><mode>3_mask): Ditto.
	(*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
	(*<any_rotate:insn><mode>3_mask): Ditto.
	(*<btsc><mode>_mask): Ditto.
	(*btr<mode>_mask): Ditto.
	(*jcc_bt<mode>_mask_1): Ditto.
2023-02-15 16:24:29 +01:00
Richard Biener
053d4dda0a Speedup DF dataflow solver
The following makes sure to process blocks that follow the current
block in the iteration order in the same iteration and only postpone
blocks that would be visited earlier to the next iteration.

For the all.i testcase in PR26854 at -O2 this shaves off 50% of
the time to solve the DF RD problem, other problems also improve
but not as drastically.

	PR middle-end/26854
	* df-core.cc (df_worklist_propagate_forward): Put later
	blocks on worklist and only earlier blocks on pending.
	(df_worklist_propagate_backward): Likewise.
	(df_worklist_dataflow_doublequeue): Change the iteration
	to process new blocks in the same iteration if that
	maintains the iteration order.
2023-02-15 15:05:27 +01:00
Marek Polacek
d482b20fd3 warn-access: wrong -Wdangling-pointer with labels [PR106080]
-Wdangling-pointer warns when the address of a label escapes.  This
causes grief in OCaml (<https://github.com/ocaml/ocaml/issues/11358>) as
well as in the kernel:
<https://bugzilla.kernel.org/show_bug.cgi?id=215851> because it uses

  #define _THIS_IP_  ({ __label__ __here; __here: (unsigned long)&&__here; })

to get the PC.  -Wdangling-pointer is documented to warn about pointers
to objects.  However, it uses is_auto_decl which checks DECL_P, but DECL_P
is also true for a label/enumerator/function declaration, none of which is
an object.  Rather, it should use auto_var_p which correctly checks VAR_P
and PARM_DECL.

	PR middle-end/106080

gcc/ChangeLog:

	* gimple-ssa-warn-access.cc (is_auto_decl): Remove.  Use auto_var_p
	instead.

gcc/testsuite/ChangeLog:

	* c-c++-common/Wdangling-pointer-10.c: New test.
	* c-c++-common/Wdangling-pointer-9.c: New test.
2023-02-15 08:53:44 -05:00
Ju-Zhe Zhong
81f0945cd9 RISC-V: Add vmacc vv c++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmacc_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vv_tumu-3.C: New test.
2023-02-15 21:42:10 +08:00
Ju-Zhe Zhong
4a9a9a787b RISC-V: Add vmacc vx rv64 c++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmacc_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tumu_rv64-3.C: New test.
2023-02-15 21:42:10 +08:00
Ju-Zhe Zhong
1ec316c538 RISC-V: Add vmacc vx rv32 c++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmacc_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmacc_vx_tumu_rv32-3.C: New test.
2023-02-15 21:42:09 +08:00
Ju-Zhe Zhong
5db1182b7c RISC-V: Add vmadd vv c++ api test
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmadd_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vv_tumu-3.C: New test.
2023-02-15 21:42:09 +08:00
Ju-Zhe Zhong
4e43f0cb26 RISC-V: Add vmadd vx C++ api test
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmadd_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmadd_vx_tumu_rv64-3.C: New test.
2023-02-15 21:42:09 +08:00
Ju-Zhe Zhong
47919b0dec RISC-V: Add vnmsac vv c++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vnmsac_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vv_tumu-3.C: New test.
2023-02-15 21:42:09 +08:00
Ju-Zhe Zhong
0fd29de569 RISC-V: Add vnmsac vx C++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vnmsac_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tumu_rv32-3.C: New test.
2023-02-15 21:42:09 +08:00
Ju-Zhe Zhong
7ce337324a RISC-V: Add vnmsac vx rv64 C++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vnmsac_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsac_vx_tumu_rv64-3.C: New test.
2023-02-15 21:42:08 +08:00
Ju-Zhe Zhong
249be04bb8 RISC-V: Add vnmsub vv c++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vnmsub_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vv_tumu-3.C: New test.
2023-02-15 21:42:08 +08:00
Ju-Zhe Zhong
1ff4063f25 RISC-V: Add vnmsub vx rv32 c++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vnmsub_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tum_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tum_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tum_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tumu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tumu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tumu_rv32-3.C: New test.
2023-02-15 21:42:08 +08:00
Ju-Zhe Zhong
326fe0f2f5 RISC-V: Add vnmsub vx rv64 c++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vnmsub_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tum_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tum_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tum_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tumu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tumu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vnmsub_vx_tumu_rv64-3.C: New test.
2023-02-15 21:42:07 +08:00
Ju-Zhe Zhong
a5012e90b2 RISC-V: Add vwmacc vv C++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwmacc_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vv_tumu-3.C: New test.
2023-02-15 21:42:07 +08:00
Ju-Zhe Zhong
c4e2a63e46 RISC-V: Add vwmacc vx C++ api tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vwmacc_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmacc_vx_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccsu_vx_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccu_vx_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vwmaccus_vx_tumu-3.C: New test.
2023-02-15 21:42:07 +08:00
Ju-Zhe Zhong
5cf9afc596 RISC-V: Add ternary constraint tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/ternop_vv_constraint-1.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vv_constraint-2.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vx_constraint-1.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vx_constraint-2.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vx_constraint-3.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vx_constraint-4.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vx_constraint-5.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vx_constraint-6.c: New test.
	* gcc.target/riscv/rvv/base/ternop_vx_constraint-7.c: New test.
2023-02-15 21:42:07 +08:00
Ju-Zhe Zhong
ddd7c2e948 RISC-V: Add vmacc vv c api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmacc_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vv_tumu-3.c: New test.
2023-02-15 21:42:06 +08:00
Ju-Zhe Zhong
dce0e53cf6 RISC-V: Add vmacc vx rv32 c api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmacc_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tumu_rv32-3.c: New test.
2023-02-15 21:42:06 +08:00
Ju-Zhe Zhong
987f4bb2f8 RISC-V: Add vmacc vx c api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmacc_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmacc_vx_tumu_rv64-3.c: New test.
2023-02-15 21:42:06 +08:00
Ju-Zhe Zhong
abbfd706ce RISC-V: Add vmadd vv C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmadd_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vv_tumu-3.c: New test.
2023-02-15 21:42:06 +08:00
Ju-Zhe Zhong
0033ab7b92 RISC-V: Add vmadd vx c api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmadd_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tumu_rv32-3.c: New test.
2023-02-15 21:42:05 +08:00
Ju-Zhe Zhong
0bca2036dc RISC-V: Add vmadd vx rv64 c api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmadd_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vmadd_vx_tumu_rv64-3.c: New test.
2023-02-15 21:42:05 +08:00
Ju-Zhe Zhong
46444e3984 RISC-V: Add vnmsac vv C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnmsac_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vv_tumu-3.c: New test.
2023-02-15 21:42:05 +08:00
Ju-Zhe Zhong
1d403b1e79 RISC-V: Add vnmsac vx C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnmsac_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tumu_rv32-3.c: New test.
2023-02-15 21:42:05 +08:00
Ju-Zhe Zhong
3a70551148 RISC-V: Add vnmsac rv64 C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnmsac_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsac_vx_tumu_rv64-3.c: New test.
2023-02-15 21:42:04 +08:00
Ju-Zhe Zhong
496ae797c2 RISC-V: Add vnmsub vx rv32 C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnmsub_vx_m_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_m_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_m_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_mu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_mu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_mu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tu_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tum_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tum_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tum_rv32-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tumu_rv32-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tumu_rv32-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tumu_rv32-3.c: New test.
2023-02-15 21:42:04 +08:00
Ju-Zhe Zhong
a462e61207 RISC-V: Add vnmsub vx rv64 C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnmsub_vx_m_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_m_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_m_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_mu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_mu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_mu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tu_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tum_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tum_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tum_rv64-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tumu_rv64-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tumu_rv64-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vx_tumu_rv64-3.c: New test.
2023-02-15 21:42:04 +08:00
Ju-Zhe Zhong
51307617b4 RISC-V: Add vnmsub vv C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vnmsub_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vnmsub_vv_tumu-3.c: New test.
2023-02-15 21:42:04 +08:00
Ju-Zhe Zhong
645bfe04ce RISC-V: Add vwmacc vv C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwmacc_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vv_tumu-3.c: New test.
2023-02-15 21:42:03 +08:00
Ju-Zhe Zhong
a432d0d9e0 RISC-V: Add vwmacc vx C api tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vwmacc_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmacc_vx_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccsu_vx_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccu_vx_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vwmaccus_vx_tumu-3.c: New test.
2023-02-15 21:42:03 +08:00
Ju-Zhe Zhong
272e119d97 RISC-V: Finish all integer C/C++ intrinsics
gcc/ChangeLog:

	* config/riscv/predicates.md: Refine codes.
	* config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
	* config/riscv/riscv-v.cc: Refine codes.
	* config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
	enum.
	(class imac): New class.
	(enum widen_ternop_type): New enum.
	(class iwmac): New class.
	(BASE): New class.
	* config/riscv/riscv-vector-builtins-bases.h: Ditto.
	* config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
	(vnmsac): Ditto.
	(vmadd): Ditto.
	(vnmsub): Ditto.
	(vwmacc): Ditto.
	(vwmaccu): Ditto.
	(vwmaccsu): Ditto.
	(vwmaccus): Ditto.
	* config/riscv/riscv-vector-builtins.cc
	(function_builder::apply_predication): Adjust for multiply-add support.
	(function_expander::add_vundef_operand): Refine codes.
	(function_expander::use_ternop_insn): New function.
	(function_expander::use_widen_ternop_insn): Ditto.
	* config/riscv/riscv-vector-builtins.h: New function.
	* config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
	(pred_mul_<optab><mode>_undef_merge): Ditto.
	(*pred_<madd_nmsub><mode>): Ditto.
	(*pred_<macc_nmsac><mode>): Ditto.
	(*pred_mul_<optab><mode>): Ditto.
	(@pred_mul_<optab><mode>_scalar): Ditto.
	(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
	(*pred_<madd_nmsub><mode>_scalar): Ditto.
	(*pred_<macc_nmsac><mode>_scalar): Ditto.
	(*pred_mul_<optab><mode>_scalar): Ditto.
	(*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
	(*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
	(*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
	(*pred_mul_<optab><mode>_extended_scalar): Ditto.
	(@pred_widen_mul_plus<su><mode>): Ditto.
	(@pred_widen_mul_plus<su><mode>_scalar): Ditto.
	(@pred_widen_mul_plussu<mode>): Ditto.
	(@pred_widen_mul_plussu<mode>_scalar): Ditto.
	(@pred_widen_mul_plusus<mode>_scalar): Ditto.
2023-02-15 21:41:51 +08:00
Ju-Zhe Zhong
a75fa2518d RISC-V: Add vmseq vv C++ tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmseq_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv_m-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv_m-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv_m-3.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vv_mu-3.C: New test.
2023-02-15 21:17:24 +08:00
Ju-Zhe Zhong
c4e770c452 RISC-V: Add vmseq vx C++ tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmseq_vx_m_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_m_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_m_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_m_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_m_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_m_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_mu_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_mu_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_mu_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_mu_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_mu_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_mu_rv64-3.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_rv32-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_rv32-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_rv32-3.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_rv64-1.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_rv64-2.C: New test.
	* g++.target/riscv/rvv/base/vmseq_vx_rv64-3.C: New test.
2023-02-15 21:17:24 +08:00
Ju-Zhe Zhong
5e96553eba RISC-V: Add vmsge vv C++ tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmsge_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv_m-1.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv_m-2.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv_m-3.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmsge_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv_m-1.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv_m-2.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv_m-3.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmsgeu_vv_mu-3.C: New test.
2023-02-15 21:17:24 +08:00