]> gcc.gnu.org Git - gcc.git/log
gcc.git
15 months agodoc: Suggest fix for -Woverloaded-virtual warnings
Jonathan Wakely [Wed, 15 Feb 2023 13:32:57 +0000 (13:32 +0000)]
doc: Suggest fix for -Woverloaded-virtual warnings

Users are confused about what this warning means, so add a suggested
solution to the documentation.

gcc/ChangeLog:

* doc/invoke.texi (C++ Dialect Options): Suggest adding a
using-declaration to unhide functions.

15 months agolibstdc++: Fix non-reserved names in <ext/throw_allocator.h>
Jonathan Wakely [Thu, 16 Feb 2023 11:32:00 +0000 (11:32 +0000)]
libstdc++: Fix non-reserved names in <ext/throw_allocator.h>

libstdc++-v3/ChangeLog:

* include/ext/throw_allocator.h: Use reserved names for
parameters.

15 months agolibstdc++: Add missing space after effective-target name in test
Jonathan Wakely [Thu, 16 Feb 2023 11:40:35 +0000 (11:40 +0000)]
libstdc++: Add missing space after effective-target name in test

libstdc++-v3/ChangeLog:

* testsuite/17_intro/names_pstl.cc: Add space after effective
target name.

15 months agolibstdc++: Fix non-reserved names in PSTL headers
Jonathan Wakely [Sat, 11 Feb 2023 00:24:47 +0000 (00:24 +0000)]
libstdc++: Fix non-reserved names in PSTL headers

libstdc++-v3/ChangeLog:

* include/pstl/algorithm_fwd.h (__pattern_search_n)
(__brick_unique_copy, __brick_adjacent_find)
(__brick_generate_n, __pattern_generate_n): Use reserved names
for parameters.
* include/pstl/algorithm_impl.h (__brick_unique_copy)
(__pattern_reverse, __brick_generate_n): Likewise.
* include/pstl/execution_impl.h (__prefer_unsequenced_tag)
(__prefer_parallel_tag): Likewise.
* include/pstl/glue_algorithm_impl.h (transform): Likewise.
* include/pstl/glue_numeric_defs.h (adjacent_difference):
Likewise.
* include/pstl/numeric_impl.h (__brick_adjacent_difference):
Likewise.
* include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
* include/pstl/unseq_backend_simd.h (_Combiner)
(__simd_min_element, __simd_minmax_element): Likewise.
* testsuite/17_intro/names_pstl.cc: New test.

15 months agolibgomp: Fix up some typos in libgomp.texi
Jakub Jelinek [Thu, 16 Feb 2023 11:15:03 +0000 (12:15 +0100)]
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.

15 months agolibgomp: Fix comment typo
Jakub Jelinek [Thu, 16 Feb 2023 11:10:19 +0000 (12:10 +0100)]
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.

15 months agolibstdc++: Fix uses of non-reserved names in headers
Jonathan Wakely [Fri, 10 Feb 2023 23:16:15 +0000 (23:16 +0000)]
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.

15 months agoreassoc: Fix up (ab) handling in eliminate_redundant_comparison [PR108783]
Jakub Jelinek [Thu, 16 Feb 2023 09:41:18 +0000 (10:41 +0100)]
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.

15 months agotree-optimization/108791 - checking ICE with sloppy ADDR_EXPR
Richard Biener [Wed, 15 Feb 2023 13:00:21 +0000 (14:00 +0100)]
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.

15 months agoobjs-gcc.sh: Only bootstrap if source-directory contains gcc
Hans-Peter Nilsson [Tue, 14 Feb 2023 17:29:50 +0000 (18:29 +0100)]
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.

15 months agotestsuite: Add CRIS to check_effective_target_lra non-LRA list
Hans-Peter Nilsson [Thu, 16 Feb 2023 00:22:15 +0000 (01:22 +0100)]
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.

15 months agoDaily bump.
GCC Administrator [Thu, 16 Feb 2023 00:18:19 +0000 (00:18 +0000)]
Daily bump.

15 months agoFix PR target/90458
Eric Botcazou [Wed, 15 Feb 2023 22:32:12 +0000 (23:32 +0100)]
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.

15 months agoFix an accidental double space
Jan-Benedict Glaw [Wed, 15 Feb 2023 22:00:46 +0000 (23:00 +0100)]
Fix an accidental double space

gcc/
* config/bpf/bpf.cc (bpf_option_override): Fix doubled space.

15 months agoFortran: error recovery on checking procedure argument intent [PR103608]
Steve Kargl [Wed, 15 Feb 2023 21:40:37 +0000 (22:40 +0100)]
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.

15 months agoFortran: error recovery on invalid assumed size reference [PR104554]
Steve Kargl [Wed, 15 Feb 2023 21:20:22 +0000 (22:20 +0100)]
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.

15 months agoi386: Relax extract location operand mode requirements
Uros Bizjak [Wed, 15 Feb 2023 20:34:59 +0000 (21:34 +0100)]
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.

15 months agoanalyzer: fix uninit false +ves [PR108664,PR108666,PR108725]
David Malcolm [Wed, 15 Feb 2023 19:52:02 +0000 (14:52 -0500)]
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>
15 months agotestsuite/i386: Cleanup target selectors in i386 target directory.
Uros Bizjak [Wed, 15 Feb 2023 15:30:51 +0000 (16:30 +0100)]
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.

15 months agoi386: Rename extr_register_operand to int248_register_operand
Uros Bizjak [Wed, 15 Feb 2023 15:24:29 +0000 (16:24 +0100)]
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.

15 months agoSpeedup DF dataflow solver
Richard Biener [Tue, 14 Feb 2023 13:46:47 +0000 (14:46 +0100)]
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.

15 months agowarn-access: wrong -Wdangling-pointer with labels [PR106080]
Marek Polacek [Tue, 14 Feb 2023 22:05:44 +0000 (17:05 -0500)]
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.

15 months agoRISC-V: Add vmacc vv c++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:32:59 +0000 (22:32 +0800)]
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.

15 months agoRISC-V: Add vmacc vx rv64 c++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:30:39 +0000 (22:30 +0800)]
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.

15 months agoRISC-V: Add vmacc vx rv32 c++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:29:36 +0000 (22:29 +0800)]
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.

15 months agoRISC-V: Add vmadd vv c++ api test
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:28:24 +0000 (22:28 +0800)]
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.

15 months agoRISC-V: Add vmadd vx C++ api test
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:25:35 +0000 (22:25 +0800)]
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.

15 months agoRISC-V: Add vnmsac vv c++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:23:55 +0000 (22:23 +0800)]
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.

15 months agoRISC-V: Add vnmsac vx C++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:22:39 +0000 (22:22 +0800)]
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.

15 months agoRISC-V: Add vnmsac vx rv64 C++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:21:37 +0000 (22:21 +0800)]
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.

15 months agoRISC-V: Add vnmsub vv c++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:18:23 +0000 (22:18 +0800)]
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.

15 months agoRISC-V: Add vnmsub vx rv32 c++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:17:18 +0000 (22:17 +0800)]
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.

15 months agoRISC-V: Add vnmsub vx rv64 c++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:15:59 +0000 (22:15 +0800)]
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.

15 months agoRISC-V: Add vwmacc vv C++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:14:23 +0000 (22:14 +0800)]
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.

15 months agoRISC-V: Add vwmacc vx C++ api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:12:36 +0000 (22:12 +0800)]
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.

15 months agoRISC-V: Add ternary constraint tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:08:13 +0000 (22:08 +0800)]
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.

15 months agoRISC-V: Add vmacc vv c api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:06:04 +0000 (22:06 +0800)]
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.

15 months agoRISC-V: Add vmacc vx rv32 c api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:04:56 +0000 (22:04 +0800)]
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.

15 months agoRISC-V: Add vmacc vx c api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:03:42 +0000 (22:03 +0800)]
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.

15 months agoRISC-V: Add vmadd vv C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:02:34 +0000 (22:02 +0800)]
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.

15 months agoRISC-V: Add vmadd vx c api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 14:01:14 +0000 (22:01 +0800)]
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.

15 months agoRISC-V: Add vmadd vx rv64 c api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:59:57 +0000 (21:59 +0800)]
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.

15 months agoRISC-V: Add vnmsac vv C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:58:29 +0000 (21:58 +0800)]
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.

15 months agoRISC-V: Add vnmsac vx C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:57:12 +0000 (21:57 +0800)]
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.

15 months agoRISC-V: Add vnmsac rv64 C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:56:12 +0000 (21:56 +0800)]
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.

15 months agoRISC-V: Add vnmsub vx rv32 C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:54:17 +0000 (21:54 +0800)]
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.

15 months agoRISC-V: Add vnmsub vx rv64 C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:53:00 +0000 (21:53 +0800)]
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.

15 months agoRISC-V: Add vnmsub vv C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:48:26 +0000 (21:48 +0800)]
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.

15 months agoRISC-V: Add vwmacc vv C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:46:12 +0000 (21:46 +0800)]
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.

15 months agoRISC-V: Add vwmacc vx C api tests
Ju-Zhe Zhong [Tue, 14 Feb 2023 13:44:05 +0000 (21:44 +0800)]
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.

15 months agoRISC-V: Finish all integer C/C++ intrinsics
Ju-Zhe Zhong [Tue, 14 Feb 2023 09:24:04 +0000 (17:24 +0800)]
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.

15 months agoRISC-V: Add vmseq vv C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:39:03 +0000 (16:39 +0800)]
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.

15 months agoRISC-V: Add vmseq vx C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:37:55 +0000 (16:37 +0800)]
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.

15 months agoRISC-V: Add vmsge vv C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:36:57 +0000 (16:36 +0800)]
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.

15 months agoRISC-V: Add vmsge vx C++ api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:35:39 +0000 (16:35 +0800)]
RISC-V: Add vmsge vx C++ api tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmsge_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsge_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgeu_vx_rv64-3.C: New test.

15 months agoRISC-V: Add vmsgt vv C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:34:31 +0000 (16:34 +0800)]
RISC-V: Add vmsgt vv C++ tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmsgt_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv_m-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv_m-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv_m-3.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv_m-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv_m-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv_m-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vv_mu-3.C: New test.

15 months agoRISC-V: Add vmsgt vx C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:33:33 +0000 (16:33 +0800)]
RISC-V: Add vmsgt vx C++ tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmsgt_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgt_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsgtu_vx_rv64-3.C: New test.

15 months agoRISC-V: Add vmsle vv C++ api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:32:23 +0000 (16:32 +0800)]
RISC-V: Add vmsle vv C++ api tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmsle_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv_m-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv_m-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv_m-3.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv_m-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv_m-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv_m-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vv_mu-3.C: New test.

15 months agoRISC-V: Add vmsle vx C++ api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:31:09 +0000 (16:31 +0800)]
RISC-V: Add vmsle vx C++ api tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmsle_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsle_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsleu_vx_rv64-3.C: New test.

15 months agoRISC-V: Add vmslt vv C++ api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:29:54 +0000 (16:29 +0800)]
RISC-V: Add vmslt vv C++ api tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmslt_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv_m-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv_m-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv_m-3.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vv_mu-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv_m-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv_m-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv_m-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vv_mu-3.C: New test.

15 months agoRISC-V: Add vmslt vx C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:28:38 +0000 (16:28 +0800)]
RISC-V: Add vmslt vx C++ tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmslt_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmslt_vx_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsltu_vx_rv64-3.C: New test.

15 months agoRISC-V: Add vmsne vv C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:27:34 +0000 (16:27 +0800)]
RISC-V: Add vmsne vv C++ tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmsne_vv-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv-3.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv_m-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv_m-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv_m-3.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv_mu-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv_mu-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vv_mu-3.C: New test.

15 months agoRISC-V: Add vmsne vx C++ tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:26:29 +0000 (16:26 +0800)]
RISC-V: Add vmsne vx C++ tests

gcc/testsuite/ChangeLog:

* g++.target/riscv/rvv/base/vmsne_vx_m_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_m_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_m_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_m_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_m_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_m_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_mu_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_mu_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_mu_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_mu_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_mu_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_mu_rv64-3.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_rv32-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_rv32-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_rv32-3.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_rv64-1.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_rv64-2.C: New test.
* g++.target/riscv/rvv/base/vmsne_vx_rv64-3.C: New test.

15 months agoRISC-V: Add binop constraints tests for integer compare
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:25:22 +0000 (16:25 +0800)]
RISC-V: Add binop constraints tests for integer compare

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/binop_vv_constraint-2.c: New test.
* gcc.target/riscv/rvv/base/binop_vv_constraint-3.c: New test.
* gcc.target/riscv/rvv/base/binop_vv_constraint-4.c: New test.
* gcc.target/riscv/rvv/base/binop_vv_constraint-5.c: New test.
* gcc.target/riscv/rvv/base/binop_vv_constraint-6.c: New test.
* gcc.target/riscv/rvv/base/binop_vv_constraint-7.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-123.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-124.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-125.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-126.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-127.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-128.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-129.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-130.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-131.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-132.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-133.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-134.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-135.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-136.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-137.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-138.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-139.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-140.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-141.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-142.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-143.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-144.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-145.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-146.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-147.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-148.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-149.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-150.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-151.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-152.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-153.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-154.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-155.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-156.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-157.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-158.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-159.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-160.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-161.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-162.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-163.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-164.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-165.c: New test.
* gcc.target/riscv/rvv/base/binop_vx_constraint-166.c: New test.

15 months agoRISC-V: Add vmseq vv C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:22:29 +0000 (16:22 +0800)]
RISC-V: Add vmseq vv C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmseq_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vv_mu-3.c: New test.

15 months agoRISC-V: Add vmseq vx C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:21:12 +0000 (16:21 +0800)]
RISC-V: Add vmseq vx C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmseq_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmseq_vx_rv64-3.c: New test.

15 months agoRISC-V: Add vmsge vv C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:04:41 +0000 (16:04 +0800)]
RISC-V: Add vmsge vv C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsge_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vv_mu-3.c: New test.

15 months agoRISC-V: Add vmsge vx C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 08:03:03 +0000 (16:03 +0800)]
RISC-V: Add vmsge vx C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsge_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsge_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgeu_vx_rv64-3.c: New test.

15 months agoRISC-V: Add vmsgt vv C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:53:04 +0000 (15:53 +0800)]
RISC-V: Add vmsgt vv C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsgt_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vv_mu-3.c: New test.

15 months agoRISC-V: Add vmsgt vx C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:51:49 +0000 (15:51 +0800)]
RISC-V: Add vmsgt vx C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsgt_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgt_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsgtu_vx_rv64-3.c: New test.

15 months agoRISC-V: Add vmsle vv C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:50:37 +0000 (15:50 +0800)]
RISC-V: Add vmsle vv C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsle_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vv_mu-3.c: New test.

15 months agoRISC-V: Add vmsle vx C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:49:14 +0000 (15:49 +0800)]
RISC-V: Add vmsle vx C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsle_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsle_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsleu_vx_rv64-3.c: New test.

15 months agoRISC-V: Add vmslt vv C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:48:10 +0000 (15:48 +0800)]
RISC-V: Add vmslt vv C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmslt_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vv_mu-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vv_mu-3.c: New test.

15 months agoRISC-V: Add vmslt vx C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:46:47 +0000 (15:46 +0800)]
RISC-V: Add vmslt vx C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmslt_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmslt_vx_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsltu_vx_rv64-3.c: New test.

15 months agoRISC-V: Add vmsne vv C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:45:25 +0000 (15:45 +0800)]
RISC-V: Add vmsne vv C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsne_vv-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv-3.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv_m-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv_m-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv_m-3.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv_mu-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv_mu-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vv_mu-3.c: New test.

15 months agoRISC-V: Add vmsne.vx C api tests
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:43:50 +0000 (15:43 +0800)]
RISC-V: Add vmsne.vx C api tests

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/vmsne_vx_m_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_m_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_m_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_m_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_m_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_m_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_mu_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_mu_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_mu_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_mu_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_mu_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_mu_rv64-3.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_rv32-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_rv32-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_rv32-3.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_rv64-1.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_rv64-2.c: New test.
* gcc.target/riscv/rvv/base/vmsne_vx_rv64-3.c: New test.

15 months agoRISC-V: Add integer compare C/C++ intrinsic support
Ju-Zhe Zhong [Mon, 13 Feb 2023 07:41:13 +0000 (15:41 +0800)]
RISC-V: Add integer compare C/C++ intrinsic support

gcc/ChangeLog:

* config/riscv/predicates.md (vector_mask_operand): Refine the codes.
(vector_all_trues_mask_operand): New predicate.
(vector_undef_operand): New predicate.
(ltge_operator): New predicate.
(comparison_except_ltge_operator): New predicate.
(comparison_except_eqge_operator): New predicate.
(ge_operator): New predicate.
* config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
* config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
(BASE): Ditto.
* config/riscv/riscv-vector-builtins-bases.h: Ditto.
* config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
(vmsne): Ditto.
(vmslt): Ditto.
(vmsgt): Ditto.
(vmsle): Ditto.
(vmsge): Ditto.
(vmsltu): Ditto.
(vmsgtu): Ditto.
(vmsleu): Ditto.
(vmsgeu): Ditto.
* config/riscv/riscv-vector-builtins-shapes.cc
(struct return_mask_def): Adjust for compare support.
* config/riscv/riscv-vector-builtins.cc
(function_expander::use_compare_insn): New function.
* config/riscv/riscv-vector-builtins.h
(function_expander::add_integer_operand): Ditto.
* config/riscv/riscv.cc (riscv_print_operand): Add compare support.
* config/riscv/riscv.md: Add vector min/max attributes.
* config/riscv/vector-iterators.md (xnor): New iterator.
* config/riscv/vector.md (@pred_cmp<mode>): New pattern.
(*pred_cmp<mode>): Ditto.
(*pred_cmp<mode>_narrow): Ditto.
(@pred_ltge<mode>): Ditto.
(*pred_ltge<mode>): Ditto.
(*pred_ltge<mode>_narrow): Ditto.
(@pred_cmp<mode>_scalar): Ditto.
(*pred_cmp<mode>_scalar): Ditto.
(*pred_cmp<mode>_scalar_narrow): Ditto.
(@pred_eqne<mode>_scalar): Ditto.
(*pred_eqne<mode>_scalar): Ditto.
(*pred_eqne<mode>_scalar_narrow): Ditto.
(*pred_cmp<mode>_extended_scalar): Ditto.
(*pred_cmp<mode>_extended_scalar_narrow): Ditto.
(*pred_eqne<mode>_extended_scalar): Ditto.
(*pred_eqne<mode>_extended_scalar_narrow): Ditto.
(@pred_ge<mode>_scalar): Ditto.
(@pred_<optab><mode>): Ditto.
(@pred_n<optab><mode>): Ditto.
(@pred_<optab>n<mode>): Ditto.
(@pred_not<mode>): Ditto.

15 months agotestsuite, objective-c: Fix a testcase on Windows.
Iain Sandoe [Wed, 15 Feb 2023 10:47:51 +0000 (10:47 +0000)]
testsuite, objective-c: Fix a testcase on Windows.

Windows needs to use uintptr_t to represent an integral pointer type (long
is not the right type there).

Patch from 'nightstike'.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
gcc/testsuite/ChangeLog:

* obj-c++.dg/proto-lossage-4.mm: Use uintptr_t for integral pointer
representations.

15 months agoipa: Avoid IPA confusing scalar values and single-field aggregates (PR 108679)
Martin Jambor [Wed, 15 Feb 2023 10:38:01 +0000 (11:38 +0100)]
ipa: Avoid IPA confusing scalar values and single-field aggregates (PR 108679)

PR 108679 testcase shows a situation when IPA-CP is able to track a
scalar constant in a single-field structure that is part of a bigger
structure.  This smaller structure is however also passed in a few
calls to other functions, but the two same-but-different entities,
originally placed at the same offset and with the same size, confuse
the mechanism that takes care of handling call statements after
IPA-SRA.

I think that in stage 4 it is best to revert to GCC 12 behavior in this
particular case (when IPA-CP detects a constant in a single-field
structure or a single element array that is part of a bigger aggregate)
and the patch below does that.  If accepted, I plan to file a
missed-optimization bug to track that we could use the IPA-CP propagated
value to re-construct the small aggregate arguments.

gcc/ChangeLog:

2023-02-13  Martin Jambor  <mjambor@suse.cz>

PR ipa/108679
* ipa-sra.cc (push_param_adjustments_for_index): Do not omit
creation of non-scalar replacements even if IPA-CP knows their
contents.

gcc/testsuite/ChangeLog:

2023-02-13  Martin Jambor  <mjambor@suse.cz>

PR ipa/108679
* gcc.dg/ipa/pr108679.c: New test.

15 months agoOpenMP/Fortran: Fix loop-iter var privatization with !$OMP LOOP [PR108512]
Tobias Burnus [Wed, 15 Feb 2023 10:23:31 +0000 (11:23 +0100)]
OpenMP/Fortran: Fix loop-iter var privatization with !$OMP LOOP [PR108512]

For 'parallel', loop-iteration variables are marked are marked as 'private',
unless they either appear in an omp do/simd loop or an data-sharing clause
already exists for those on 'parallel'. 'omp loop' wasn't handled, leading
to (potentially) multiple data-sharing clauses in gfc_resolve_do_iterator
as omp_current_ctx pointed to the 'parallel' directive, ignoring the
in-betwen 'loop' directive.

The latter lead to a bogus diagnostic - or rather an ICE as the source
location var contained only '\0'.

Additionally, several 'case EXEC_OMP...LOOP' have been added to call the
right resolution function and likewise for '{masked,master} taskloop'.

gcc/fortran/ChangeLog:

PR fortran/108512
* openmp.cc (gfc_resolve_omp_parallel_blocks): Handle combined 'loop'
directives.
(gfc_resolve_do_iterator): Set a source location for added
'private'-clause arguments.
* resolve.cc (gfc_resolve_code): Call gfc_resolve_omp_do_blocks
also for EXEC_OMP_LOOP and gfc_resolve_omp_parallel_blocks for
combined directives with loop + '{masked,master} taskloop (simd)'.

gcc/testsuite/ChangeLog:

PR fortran/108512
* gfortran.dg/gomp/loop-5.f90: New test.
* gfortran.dg/gomp/loop-2.f90: Update dg-error.
* gfortran.dg/gomp/taskloop-2.f90: Update dg-error.

15 months agolibgomp: Fix reverse-offload for GOMP_MAP_TO_PSET
Tobias Burnus [Wed, 15 Feb 2023 10:20:32 +0000 (11:20 +0100)]
libgomp: Fix reverse-offload for GOMP_MAP_TO_PSET

libgomp/
* target.c (gomp_target_rev): Dereference ptr
to get device address.
* testsuite/libgomp.fortran/reverse-offload-5.f90: Add test
for unallocated allocatable.

15 months agolibgomp: Fix 'target enter data' with always pointer
Tobias Burnus [Wed, 15 Feb 2023 10:17:40 +0000 (11:17 +0100)]
libgomp: Fix 'target enter data' with always pointer

As GOMP_MAP_ALWAYS_POINTER operates on the previous map item, ensure that
with 'target enter data' both are passed together to gomp_map_vars_internal.

libgomp/ChangeLog:

* target.c (gomp_map_vars_internal): Add 'i > 0' before doing a
kind check.
(GOMP_target_enter_exit_data): If the next map item is
GOMP_MAP_ALWAYS_POINTER map it together with the current item.
* testsuite/libgomp.fortran/target-enter-data-3.f90: New test.

15 months agopowerpc: Fix up expansion for WIDEN_MULT_PLUS_EXPR [PR108787]
Jakub Jelinek [Wed, 15 Feb 2023 08:56:47 +0000 (09:56 +0100)]
powerpc: Fix up expansion for WIDEN_MULT_PLUS_EXPR [PR108787]

WIDEN_MULT_PLUS_EXPR as documented has the factor operands with
the same precision and the addend and result another one at least twice
as wide.
Similarly, {,u}maddMN4 is documented as
'maddMN4'
     Multiply operands 1 and 2, sign-extend them to mode N, add operand
     3, and store the result in operand 0.  Operands 1 and 2 have mode M
     and operands 0 and 3 have mode N.  Both modes must be integer or
     fixed-point modes and N must be twice the size of M.

     In other words, 'maddMN4' is like 'mulMN3' except that it also adds
     operand 3.

     These instructions are not allowed to 'FAIL'.

'umaddMN4'
     Like 'maddMN4', but zero-extend the multiplication operands instead
     of sign-extending them.
The PR103109 addition of these expanders to rs6000 didn't handle this
correctly though, it treated the last argument as also having mode M
sign or zero extended into N.  Unfortunately this means incorrect code
generation whenever the last operand isn't really sign or zero extended
from DImode to TImode.

The following patch removes maddditi4 expander altogether from rs6000.md,
because we'd need
        maddhd 9,3,4,5
        sradi 10,5,63
        maddld 3,3,4,5
        sub 9,9,10
        add 4,9,6
which is longer than
        mulld 9,3,4
        mulhd 4,3,4
        addc 3,9,5
        adde 4,4,6
and nothing would be able to optimize the case of last operand already
sign-extended from DImode to TImode into just
mr 9,3
        maddld 3,3,4,5
        maddhd 4,9,4,5
or so.  And fixes umaddditi4, so that it emits an add at the end to add
the high half of the last operand, fortunately in this case if the high
half of the last operand is known to be zero (i.e. last operand is zero
extended from DImode to TImode) then combine will drop the useless add.

If we wanted to get back the signed op1 * op2 + op3 all in the DImode
into TImode op0, we'd need to introduce a new tree code next to
WIDEN_MULT_PLUS_EXPR and maddMN4 expander, because I'm afraid it can't
be done at expansion time in maddMN4 expander to detect whether the
operand is sign extended especially because of SUBREGs and the awkwardness
of looking at earlier emitted instructions, and combine would need 5
instruction combination.

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

PR target/108787
PR target/103109
* config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
expander, change operand 3 to be TImode, emit maddlddi4 and
umadddi4_highpart{,_le} with its low half and finally add the high
half to the result.

* gcc.dg/pr108787.c: New test.
* gcc.target/powerpc/pr108787.c: New test.
* gcc.target/powerpc/pr103109-1.c: Adjust expected instruction counts.

15 months agodocs: document new --param=asan-kernel-mem-intrinsic-prefix
Martin Liska [Wed, 15 Feb 2023 08:37:59 +0000 (09:37 +0100)]
docs: document new --param=asan-kernel-mem-intrinsic-prefix

gcc/ChangeLog:

* doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.

15 months agoc++: Add testcases from some Issaquah DRs
Jakub Jelinek [Wed, 15 Feb 2023 08:34:41 +0000 (09:34 +0100)]
c++: Add testcases from some Issaquah DRs

The following patch adds testcases for 5 DRs.  In the DR2475, DR2530 and
CWG2691 my understanding is we already implement the desired behavior,
in DR2478 partially (I've added 2 dg-bogus there, I think we inherit
rather than overwrite DECL_DECLARED_CONSTINIT_P for explicit specialization
somewhere, still far better than clang++) and DR2673 on the other side the
DR was to codify the clang++ behavior rather than GCC.

Not 100% sure if it is better to commit the 2 with dg-bogus or just wait
until the actual fixes are implemented.  BTW, I've noticed
register_specialization does:
              FOR_EACH_CLONE (clone, fn)
                {
                  DECL_DECLARED_INLINE_P (clone)
                    = DECL_DECLARED_INLINE_P (fn);
                  DECL_SOURCE_LOCATION (clone)
                    = DECL_SOURCE_LOCATION (fn);
                  DECL_DELETED_FN (clone)
                    = DECL_DELETED_FN (fn);
                }
but not e.g. constexpr/consteval, have tried to cover that in a testcase
but haven't managed to do so.

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

* g++.dg/DRs/dr2475.C: New test.
* g++.dg/DRs/dr2478.C: New test.
* g++.dg/DRs/dr2530.C: New test.
* g++.dg/DRs/dr2673.C: New test.
* c-c++-common/cpp/delimited-escape-seq-8.c: New test.

15 months agoFix possible sanopt compile-time hog
Richard Biener [Tue, 14 Feb 2023 15:14:51 +0000 (16:14 +0100)]
Fix possible sanopt compile-time hog

While working on bitmap operations I figured sanopt.cc uses
a sbitmap worklist, iterating using bitmap_first_set_bit on it.
That's quadratic since bitmap_first_set_bit for sbitmap is O(n).

The fix is to use regular bitmaps for the worklist and the bitmap
feeding it and to avoid a useless copy.

* sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
for with_poison and alias worklist to it.
(sanitize_asan_mark_poison): Likewise.

15 months agotarget/108738 - optimize bit operations in STV
Richard Biener [Thu, 9 Feb 2023 12:40:43 +0000 (13:40 +0100)]
target/108738 - optimize bit operations in STV

The following does low-hanging optimizations, combining bitmap
test and set and removing redundant operations.

PR target/108738
* config/i386/i386-features.cc (scalar_chain::add_to_queue):
Combine bitmap test and set.
(scalar_chain::add_insn): Likewise.
(scalar_chain::analyze_register_chain): Remove redundant
attempt to add to queue and instead strengthen assert.
Sink common attempts to mark the def dual-mode.
(scalar_chain::add_to_queue): Remove redundant insn bitmap
check.

15 months agotarget/108738 - STV bitmap operations compile-time hog
Richard Biener [Thu, 9 Feb 2023 10:03:25 +0000 (11:03 +0100)]
target/108738 - STV bitmap operations compile-time hog

When the set of candidates becomes very large then repeated
bit checks on it during the build of an actual chain can become
slow because of the O(n) nature of bitmap tests.  The following
switches the candidates bitmaps to the tree representation before
building the chains to get O(log n) amortized behavior.

For the testcase at hand this improves STV time by 50%.

PR target/108738
* config/i386/i386-features.cc (convert_scalars_to_vector):
Switch candidates bitmaps to tree view before building the chains.

15 months agoDaily bump.
GCC Administrator [Wed, 15 Feb 2023 00:17:49 +0000 (00:17 +0000)]
Daily bump.

15 months agogen_reload: Correct parameter for fatal_insn call
Hans-Peter Nilsson [Wed, 15 Feb 2023 00:15:43 +0000 (01:15 +0100)]
gen_reload: Correct parameter for fatal_insn call

Observed when disabling LEGITIMIZE_RELOAD_ADDRESS for
cris-elf: the current code doesn't handle the post-cc0
parallel-with-clobber-of-cc0 sets, dropping down into the
fatal_insn call.  Following the code, it's obvious that the
variable "set" is always NULL at the call.  The intended
parameter is "in".

* reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
"failure trying to reload" call.

15 months agodebug: Support "phrs" for dumping a HARD_REG_SET
Hans-Peter Nilsson [Wed, 15 Feb 2023 00:09:06 +0000 (01:09 +0100)]
debug: Support "phrs" for dumping a HARD_REG_SET

The debug-function in sel-sched-dump.cc that would be
suitable for a hookup to a command in gdb is guarded by
#ifdef INSN_SCHEDULING, thus can't be used for all targets.
Better move the function marked DEBUG_FUNCTION elsewhere,
here to a file with a suitable static function to call.

There are multiple sets of similar functions dumping
HARD_REG_SETs, but cleaning that up is better left to a
separate commit.

gcc:
* gdbinit.in (phrs): New command.
* sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
* ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.

15 months agoc++: fix ICE in joust_maybe_elide_copy [PR106675]
Marek Polacek [Fri, 10 Feb 2023 22:26:57 +0000 (17:26 -0500)]
c++: fix ICE in joust_maybe_elide_copy [PR106675]

joust_maybe_elide_copy checks that the last conversion in the ICS for
the first argument is ck_ref_bind, which is reasonable, because we've
checked that we're dealing with a copy/move constructor.  But it can
also happen that we couldn't figure out which conversion function is
better to convert the argument, as in this testcase: joust couldn't
decide if we should go with

  operator foo &()

or

  operator foo const &()

so we get a ck_ambig, which then upsets joust_maybe_elide_copy.  Since
a ck_ambig can validly occur, I think we should just return early, as
in the patch below.

PR c++/106675

gcc/cp/ChangeLog:

* call.cc (joust_maybe_elide_copy): Return false for ck_ambig.

gcc/testsuite/ChangeLog:

* g++.dg/cpp0x/overload-conv-5.C: New test.

15 months agobpf: fix memory constraint of ldx/stx instructions [PR108790]
David Faust [Tue, 14 Feb 2023 19:23:01 +0000 (11:23 -0800)]
bpf: fix memory constraint of ldx/stx instructions [PR108790]

In some cases where the target memory address for an ldx or stx
instruction could be reduced to a constant, GCC could emit a malformed
instruction like:

    ldxdw %r0,0

Rather than the expected form:

    ldxdw %rX, [%rY + OFFSET]

This is due to the constraint allowing a const_int operand, which the
output templates do not handle.

Fix it by introducing a new memory constraint for the appropriate
operands of these instructions, which is identical to 'm' except that
it does not accept const_int.

gcc/

PR target/108790
* config/bpf/constraints.md (q): New memory constraint.
* config/bpf/bpf.md (zero_extendhidi2): Use it here.
(zero_extendqidi2): Likewise.
(zero_extendsidi2): Likewise.
(*mov<MM:mode>): Likewise.

gcc/testsuite/

PR target/108790
* gcc.target/bpf/ldxdw.c: New test.

15 months agoSimplify "1 - bool_val" to "bool_val ^ 1"
Andrew Pinski [Tue, 31 Jan 2023 05:03:21 +0000 (05:03 +0000)]
Simplify "1 - bool_val" to "bool_val ^ 1"

For bool values, it is easier to deal with
xor 1 rather than having 1 - a. This is because
we are more likely to simplify the xor further in many
cases.

This is a special case for (MASK - b) where MASK
is a powerof2 - 1 and b <= MASK but only for bool
ranges ([0,1]) as that is the main case where the
difference comes into play.

Note this is enabled for gimple folding only
as the ranges are only know while doing gimple
folding and cfun is not always set when fold is called.

OK? Bootstrapped and tested on x86_64-linux-gnu with no
regressions.

gcc/ChangeLog:

PR tree-optimization/108355
PR tree-optimization/96921
* match.pd: Add pattern for "1 - bool_val".

gcc/testsuite/ChangeLog:

PR tree-optimization/108355
PR tree-optimization/96921
* gcc.dg/tree-ssa/bool-minus-1.c: New test.
* gcc.dg/tree-ssa/bool-minus-2.c: New test.
* gcc.dg/tree-ssa/pr108354-1.c: New test.

15 months agolibstdc++: Update an open-std.org link
Gerald Pfeifer [Tue, 14 Feb 2023 21:16:44 +0000 (22:16 +0100)]
libstdc++: Update an open-std.org link

libstdc++-v3/ChangeLog:

* doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
to www.open-std.org and https.
* doc/html/manual/status.html: Regenerate.

15 months agoImprove VN PHI hash table handling
Richard Biener [Tue, 14 Feb 2023 13:51:48 +0000 (14:51 +0100)]
Improve VN PHI hash table handling

The hash function of PHIs is weak since we want to be able to CSE
them even across basic-blocks in some cases.  The following avoids
weakening the hash for cases we are never going to CSE, reducing
the number of collisions and avoiding redundant work in the
hash and equality functions.

* tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
basic block index hashing on the availability of ->cclhs.
(vn_phi_eq): Avoid re-doing sanity checks for CSE but
rely on ->cclhs availability.
(vn_phi_lookup): Set ->cclhs only when we are eventually
going to CSE the PHI.
(vn_phi_insert): Likewise.

15 months agoFix small regression in Ada
Eric Botcazou [Tue, 14 Feb 2023 12:27:18 +0000 (13:27 +0100)]
Fix small regression in Ada

gcc/
* gimplify.cc (gimplify_save_expr): Add missing guard.
gcc/ada/
* gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
gcc/testsuite/
* gnat.dg/shift2.adb: New test.

15 months agoFix musl build on Linux
Dongsheng Song [Tue, 14 Feb 2023 11:51:29 +0000 (12:51 +0100)]
Fix musl build on Linux

The commit "ada: Add PIE support to backtraces on Linux" uses
_r_debug under Linux unconditionally. It is incorrect since musl
libc does not define _r_debug like glibc.

gcc/ada/
* adaint.c [Linux]: Include <features.h>.
(__gnat_get_executable_load_address) [Linux]: Enable only for
glibc and uClibc.

15 months agotree-optimization/108782 - nested first order recurrence vectorization
Richard Biener [Tue, 14 Feb 2023 10:10:56 +0000 (11:10 +0100)]
tree-optimization/108782 - nested first order recurrence vectorization

First order recurrence vectorization isn't possible for nested
loops.

PR tree-optimization/108782
* tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
Make sure we're not vectorizing an inner loop.

* gcc.dg/torture/pr108782.c: New testcase.

15 months agoasan: Add --param=asan-kernel-mem-intrinsic-prefix= [PR108777]
Jakub Jelinek [Tue, 14 Feb 2023 11:10:09 +0000 (12:10 +0100)]
asan: Add --param=asan-kernel-mem-intrinsic-prefix= [PR108777]

While in the -fsanitize=address case libasan overloads memcpy, memset,
memmove and many other builtins, such that they are always instrumented,
Linux kernel for -fsanitize=kernel-address recently changed or is changing,
such that memcpy, memset and memmove actually aren't instrumented because
they are often used also from no_sanitize ("kernel-address") functions
and wants __{,hw,}asaN_{memcpy,memset,memmove} to be used instead
for the instrumented calls.  See e.g. the https://lkml.org/lkml/2023/2/9/1182
thread.  Without appropriate support on the compiler side, that will mean
any time a kernel-address instrumented function (most of them) calls
memcpy/memset/memmove, they will not be instrumented and thus won't catch
kernel bugs.  Apparently clang 15 has a param for this.

The following patch implements the same (except it is a usual GCC --param,
not -mllvm argument) on the GCC side.  I know this isn't a regression
bugfix, but given that -fsanitize=kernel-address has a single project that
uses it which badly wants this I think it would be worthwhile to make an
exception and get this into GCC 13 rather than waiting another year, it
won't affect non-kernel code, nor even the kernel unless the new parameter
is used.

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

PR sanitizer/108777
* params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
* asan.h (asan_memfn_rtl): Declare.
* asan.cc (asan_memfn_rtls): New variable.
(asan_memfn_rtl): New function.
* builtins.cc (expand_builtin): If
param_asan_kernel_mem_intrinsic_prefix and function is
kernel-{,hw}address sanitized, emit calls to
__{,hw}asan_{memcpy,memmove,memset} rather than
{memcpy,memmove,memset}.  Use sanitize_flags_p (SANITIZE_ADDRESS)
instead of flag_sanitize & SANITIZE_ADDRESS to check if
asan_intercepted_p functions shouldn't be expanded inline.

* gcc.dg/asan/pr108777-1.c: New test.
* gcc.dg/asan/pr108777-2.c: New test.
* gcc.dg/asan/pr108777-3.c: New test.
* gcc.dg/asan/pr108777-4.c: New test.
* gcc.dg/asan/pr108777-5.c: New test.
* gcc.dg/asan/pr108777-6.c: New test.
* gcc.dg/completion-3.c: Adjust expected multiline output.

This page took 0.132362 seconds and 5 git commands to generate.