Age | Commit message (Collapse) | Author | Files | Lines |
|
We assume that TYPE_NO_NAMED_ARGS_STDARG_P don't have any named arguments and
there is nothing to advance, but that is not the case for (...) functions
returning by hidden reference which have one such artificial argument.
This causes gcc.dg/c23-stdarg-[68].c to fail
Fix the issue by checking if arg.type is NULL as r14-9503-g218d1749612
explains
Tested on linux rv64gcv.
gcc/ChangeLog:
PR target/114175
* config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip
riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
if arg.type is NULL
|
|
Spec: github.com/openhwgroup/core-v-sw/blob/master/specifications/corev-builtin-spec.md
Contributors:
Mary Bennett <mary.bennett@embecosm.com>
Nandni Jamnadas <nandni.jamnadas@embecosm.com>
Pietra Ferreira <pietra.ferreira@embecosm.com>
Charlie Keaney
Jessica Mills
Craig Blackmore <craig.blackmore@embecosm.com>
Simon Cook <simon.cook@embecosm.com>
Jeremy Bennett <jeremy.bennett@embecosm.com>
Helene Chelin <helene.chelin@embecosm.com>
gcc/ChangeLog:
* common/config/riscv/riscv-common.cc: Create XCVbi extension
support.
* config/riscv/riscv.opt: Likewise.
* config/riscv/corev.md: Implement cv_branch<mode> pattern
for cv.beqimm and cv.bneimm.
* config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V
branch instruction pattern.
* config/riscv/constraints.md: Implement constraints
cv_bi_s5 - signed 5-bit immediate.
* config/riscv/predicates.md: Implement predicate
const_int5s_operand - signed 5 bit immediate.
* doc/sourcebuild.texi: Add XCVbi documentation.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/cv-bi-beqimm-compile-1.c: New test.
* gcc.target/riscv/cv-bi-beqimm-compile-2.c: New test.
* gcc.target/riscv/cv-bi-bneimm-compile-1.c: New test.
* gcc.target/riscv/cv-bi-bneimm-compile-2.c: New test.
* lib/target-supports.exp: Add proc for XCVbi.
|
|
This patch add XiangShan Nanhu cpu microarchitecture,
Nanhu is a 6-issue, superscalar, out-of-order processor.
More details see: https://xiangshan-doc.readthedocs.io/zh-cn/latest/arch
gcc/ChangeLog:
* config/riscv/riscv-cores.def (RISCV_TUNE): New def.
(RISCV_CORE): Ditto.
* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New
option.
* config/riscv/riscv.cc: New def.
* config/riscv/riscv.md: New include.
* config/riscv/xiangshan.md: New file.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/mcpu-xiangshan-nanhu.c: New test.
Co-Authored by: Lin Jiawei <jiawei.lin@epfl.ch>
|
|
Fixes: acc38ff59976 ("MIPS: Add -m(no-)strict-align option")
gcc/ChangeLog:
* config/riscv/riscv.opt.urls: Regenerated.
* config/rs6000/sysv4.opt.urls: Likewise.
* config/xtensa/xtensa.opt.urls: Likewise.
|
|
Notice some code style issue(s) when add __riscv_v_fixed_vlen, includes:
* Meanless empty line.
* Line greater than 80 chars.
* Indent with 3 space(s).
* Argument unalignment.
gcc/ChangeLog:
* config/riscv/riscv-c.cc (riscv_ext_version_value): Fix
code style greater than 80 chars.
(riscv_cpu_cpp_builtins): Fix useless empty line, indent
with 3 space(s) and argument unalignment.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
The following code can result in ICE:
-march=rv64gcv --param riscv-autovec-lmul=dynamic -O3
char *jpeg_difference7_input_buf;
void jpeg_difference7(int *diff_buf) {
unsigned width;
int samp, Rb;
while (--width) {
Rb = samp = *jpeg_difference7_input_buf;
*diff_buf++ = -(int)(samp + (long)Rb >> 1);
}
}
One biggest_mode update missed in one branch and trigger assertion fail.
gcc_assert (biggest_size >= mode_size);
Tested On RV64 and no regression.
PR target/114264
gcc/ChangeLog:
* config/riscv/riscv-vector-costs.cc: Fix ICE
gcc/testsuite/ChangeLog:
* gcc.dg/vect/costmodel/riscv/rvv/pr114264.c: New test.
Signed-off-by: demin.han <demin.han@starfivetech.com>
|
|
There are two expand_vec_cmp functions.
They have same structure and similar code.
We can use default arguments instead of overloading.
Tested on RV32 and RV64.
gcc/ChangeLog:
* config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
* config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
(expand_vec_cmp_float): Adapt arguments
Signed-off-by: demin.han <demin.han@starfivetech.com>
|
|
Three-operand instructions like vmacc are modeled with an implicit
output reload when the output does not match one of the operands. For
this we use vmv.v.v which is subject to length masking.
In a situation where the current vl is less than the full vlenb
and the fma's result value is used as input for a vector reduction
(which is never length masked) we effectively only reduce vl
elements. The masked-out elements are relevant for the
reduction, though, leading to a wrong result.
This patch replaces the vmv reloads by full-register reloads.
gcc/ChangeLog:
PR target/114200
PR target/114202
* config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/pr114200.c: New test.
* gcc.target/riscv/rvv/autovec/pr114202.c: New test.
|
|
Scalar loads provide offset addressing while unit-stride vector
instructions cannot. The offset must be loaded into a general-purpose
register before it can be used. In order to account for this, this
patch adds an address arithmetic heuristic that keeps track of data
reference operands. If we haven't seen the operand before we add the
cost of a scalar statement.
This helps to get rid of an lbm regression when vectorizing (roughly
0.5% fewer dynamic instructions). gcc5 improves by 0.2% and deepsjeng
by 0.25%. wrf and nab degrade by 0.1%. This is because before we now
adjust the cost of SLP as well as loop-vectorized instructions whereas
we would only adjust loop-vectorized instructions before.
Considering higher scalar_to_vec costs (3 vs 1) for all vectorization
types causes some snippets not to get vectorized anymore. Given these
costs the decision looks correct but appears worse when just counting
dynamic instructions.
In total SPECint 2017 has 4 bln dynamic instructions less and SPECfp 0.7
bln.
gcc/ChangeLog:
* config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
(costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
offset handling.
(costs::add_stmt_cost): Also adjust cost for statements without
stmt_info.
* config/riscv/riscv-vector-costs.h: Define zero constant.
gcc/testsuite/ChangeLog:
* gcc.dg/vect/costmodel/riscv/rvv/vse-slp-1.c: New test.
* gcc.dg/vect/costmodel/riscv/rvv/vse-slp-2.c: New test.
|
|
This bug totally fell off my radar. Sorry about that.
We have some special casing the conditional move expander to simplify a
conditional move when comparing a register against zero and that same register
is one of the arms.
Specifically a (eq (reg) (const_int 0)) where reg is also the true arm or (ne
(reg) (const_int 0)) where reg is the false arm need not use the fully
generalized conditional move, thus saving an instruction for those cases.
In the NE case we swapped the operands, but didn't swap the condition, which
led to the ICE due to an unrecognized pattern. THe backend actually has
distinct patterns for those two cases. So swapping the operands is neither
needed nor advisable.
Regression tested on rv64gc and verified the new tests pass.
Pushing to the trunk.
PR target/113001
PR target/112871
gcc/
* config/riscv/riscv.cc (expand_conditional_move): Do not swap
operands when the comparison operand is the same as the false
arm for a NE test.
gcc/testsuite
* gcc.target/riscv/zicond-ice-3.c: New test.
* gcc.target/riscv/zicond-ice-4.c: New test.
|
|
Cleanup mode_size related code which is not used anymore. Below tests are
passed for this patch.
* The RVV fully regresssion test.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
mode_size related code.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
There were several commits that didn't regenerate the opt.urls files.
Fixes: 438ef143679e ("rs6000: Neuter option -mpower{8,9}-vector")
Fixes: 50c549ef3db6 ("gccrs: enable -Winfinite-recursion warnings by default")
Fixes: 25bb8a40abd9 ("Move docs for -Wuse-after-free and -Wuseless-cast")
Fixes: 48448055fb70 ("AVR: Support .rodata in Flash for AVR64* and AVR128*")
Fixes: 42503cc257fb ("AVR: Document option -mskip-bug")
Fixes: 7de5bb642c12 ("i386: [APX] Document inline asm behavior and new switch")
Fixes: 49a14ee488b8 ("Add -mevex512 into invoke.texi")
Fixes: 4666cbde5e6d ("Sort warning options in c-family/c.opt.")
Fixes: cda383616183 ("AVR: target/114100 - Better indirect accesses for reduced Tiny")
gcc/c-family/ChangeLog:
* c.opt.urls: Regenerate.
gcc/ChangeLog:
* common.opt.urls: Regenerate.
* config/avr/avr.opt.urls: Likewise.
* config/i386/i386.opt.urls: Likewise.
* config/pru/pru.opt.urls: Likewise.
* config/riscv/riscv.opt.urls: Likewise.
* config/rs6000/rs6000.opt.urls: Likewise.
gcc/rust/ChangeLog:
* lang.opt.urls: Regenerate.
|
|
So one of the broad goals we've had over the last few months has been to ensure
that every insn has a scheduling type and that every insn is associated with an
insn reservation in the scheduler.
This avoids some amazingly bad behavior in the scheduler. I won't go through
the gory details.
I was recently analyzing a code quality regression with dhrystone (ugh!) and
one of the issues was poor scheduling which lengthened the lifetime of a pseudo
and ultimately resulted in needing an additional callee saved register
save/restore.
This was ultimately tracked down incorrect types on a few patterns. So I did
an audit of all the patterns that had types added/changed as part of this
effort and found a variety of problems, primarily in the various move patterns
and extension patterns. This is a regression relative to gcc-13.
Naturally the change in types affects scheduling, which in turn changes the
precise code we generate and causes some testsuite fallout.
I considered updating the regexps since the change in the resulting output is
pretty consistent. But of course the test would still be sensitive to things
like load latency. So instead I just turned off the 2nd phase scheduler in the
affected tests.
Bootstrapped and regression tested on rv64gc-linux-gnu.
gcc
* config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
type attribute.
(extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
(movdi_32bit, movdi_64bit, movsi_internal): Likewise.
(movhi_internal, movqi_internal): Likewise.
(movsf_softfloat, movsf_hardfloat): Likewise.
(movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
(movdf_softfloat): Likewise.
gcc/testsuite
* gcc.target/riscv/rvv/autovec/vls/calling-convention-1.c: Turn off
second phase scheduler.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-2.c: Likewise.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-3.c: Likewise.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-4.c: Likewise.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-5.c: Likewise.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-6.c: Likewise.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-7.c: Likewise.
|
|
Standard vector calling convention variant will only enabled when function
has vector argument or returning value by default, however user may also
want to invoke function without that during a vectorized loop at some situation,
but it will cause a huge performance penalty due to vector register store/restore.
So user can declare function with this riscv_vector_cc attribute like below, that could enforce
function will use standard vector calling convention variant.
void foo() __attribute__((riscv_vector_cc));
[[riscv::vector_cc]] void foo(); // For C++11 and C23
For more details please reference the below link.
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/67
gcc/ChangeLog:
* config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
attribute to riscv_attribute_table.
(riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
(riscv_fntype_abi): Add riscv_vector_cc attribute check.
* doc/extend.texi: Add riscv_vector_cc attribute description.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/attribute-riscv_vector_cc-error.C: New test.
* gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-callee-saved.c: New test.
* gcc.target/riscv/rvv/base/attribute-riscv_vector_cc-error.c: New test.
|
|
This patch would like to introduce one new gcc option for RVV. To
appoint the bits size of one RVV vector register. Valid arguments to
'-mrvv-vector-bits=' are:
* scalable
* zvl
The scalable will pick up the zvl*b in the march as the minimal vlen.
For example, the minimal vlen will be 512 when march=rv64gcv_zvl512b
and mrvv-vector-bits=scalable.
The zvl will pick up the zvl*b in the march as exactly vlen.
For example, the vlen will be 1024 exactly when march=rv64gcv_zvl1024b
and mrvv-vector-bits=zvl.
The internal option --param=riscv-autovec-preference will be replaced
by option -mrvv-vector-bits. Aka:
* -mrvv-vector-bits=scalable indicates --param=riscv-autovec-preference=scalable
* -mrvv-vector-bits=zvl indicates --param=riscv-autovec-preference=fixed-vlmax
You can also take -fno-tree-vectorize for --param=riscv-autovec-preference=none.
The internal option --param=riscv-autovec-preference is unavailable after this
patch.
Given below sample for more details:
void test_rvv_vector_bits ()
{
vint32m1_t x;
asm volatile ("def %0": "=vr"(x));
asm volatile (""::: "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
"v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
"v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
"v24", "v25", "v26", "v27", "v28", "v29", "v30", "v31");
asm volatile ("use %0": : "vr"(x));
}
With -march=rv64gcv_zvl128b -mrvv-vector-bits=scalable we have (for min_vlen >= 128)
csrr t0,vlenb
sub sp,sp,t0
def v1
vs1r.v v1,0(sp)
vl1re32.v v1,0(sp)
use v1
csrr t0,vlenb
add sp,sp,t0
jr ra
With -march=rv64gcv_zvl128b -mrvv-vector-bits=zvl we have (for vlen = 128)
addi sp,sp,-16
def v1
vs1r.v v1,0(sp)
vl1re32.v v1,0(sp)
use v1
addi sp,sp,16
jr ra
The below test are passed for this patch.
* The riscv fully regression test.
PR target/112817
gcc/ChangeLog:
* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
* config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
(enum rvv_vector_bits_enum): New enum for different RVV vector bits.
* config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
comments for option replacement.
* config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
riscv_autovec_preference to rvv_vector_bits.
(vls_mode_valid_p): Ditto.
(estimated_poly_value): Ditto.
* config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
vector chunks and honor new option mrvv-vector-bits.
(riscv_override_options_internal): Update comments and rename the
vector chunks.
* config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
internal option param=riscv-autovec-preference.
gcc/testsuite/ChangeLog:
* g++.target/riscv/rvv/base/pr111296.C: Replace
param=riscv-autovec-preference to mrvv-vector-bits.
* gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-12.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113112-1.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113112-3.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113112-4.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113112-5.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113247-2.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113247-4.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113281-2.c: Ditto.
* gcc.dg/vect/costmodel/riscv/rvv/pr113281-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/align-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/align-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/copysign-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/copysign-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/copysign-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/copysign-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmax-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmax_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmax_zvfh-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmax_zvfh_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmin-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmin_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmin_zvfh-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/fmin_zvfh_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/mulh-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/mulh-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/mulh_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/mulh_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/narrow-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/narrow-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/narrow-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/narrow_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/narrow_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/narrow_run-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-immediate.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-scalar-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-scalar-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-scalar-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/shift-scalar-template.h: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vadd-run-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vadd-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vadd-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vadd-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vand-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vand-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vand-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vcompress-avlprop-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vdiv-run-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vdiv-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vdiv-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmax-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmax-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmax-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmax-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmin-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmin-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmin-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmin-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmul-run-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmul-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmul-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vmul-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vor-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vor-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vor-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vrem-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vrem-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vrem-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vsub-run-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vsub-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv-nofm.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vsub-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vsub-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vxor-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vxor-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/binop/vxor-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/bug-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/bug-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/bug-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/bug-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/bug-5.c: Ditto.
* gcc.target/riscv/rvv/autovec/bug-6.c: Ditto.
* gcc.target/riscv/rvv/autovec/bug-8.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond_run-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cmp/vcond_run-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-10.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-11.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-10.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-11.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-5.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-6.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-7.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-8.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_arith_run-9.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv32-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv32-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv64-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv64-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv32-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv32-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv64-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv64-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv32-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv32-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv64-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh-rv64-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_zvfh_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv32-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv32-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv64-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv64-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fadd_run-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-5.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-6.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-7.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-8.c:
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-1.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-2.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-3.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-4.c: Ditto.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_fmul_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_mulh-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_mulh-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-7.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-8.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift-9.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_shift_run-9.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt-zvfh-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt-zvfh-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_sqrt_run-zvfh-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-7.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary-8.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_unary_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-3.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-4.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-5.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-6.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-7.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-8.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-9.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/cond_widen_reduc_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/cond/pr111401.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vec-narrow-int64-float16.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vec-widen-float16-int64.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt-itof-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfcvt_rtz-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-ftoi-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-itof-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfncvt-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-ftoi-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-itof-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vfwcvt-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vncvt-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vncvt-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vncvt-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vsext-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vsext-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vsext-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vzext-run.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vzext-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/conversions/vzext-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/fixed-vlmax-1.c: Diito.
* gcc.target/riscv/rvv/autovec/fold-min-poly.c: Diito.
* gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-1.c: Diito.
* gcc.target/riscv/rvv/autovec/gather-scatter/strided_load-2.c: Diito.
* gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-1.c: Diito.
* gcc.target/riscv/rvv/autovec/gather-scatter/strided_store-2.c: Diito.
* gcc.target/riscv/rvv/autovec/madd-split2-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/gimple_fold-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/live-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/live-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/live_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/live_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-3.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-4.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_zbb.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/select_vl-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/select_vl-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/single_rgroup-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/single_rgroup-3.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-10.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-11.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-12.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-13.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-14.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-15.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-16.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-17.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-18.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-19.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-3.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-4.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-5.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-6.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-7.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-8.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp-9.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-11.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-12.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-13.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-14.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-15.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-16.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-17.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-18.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-19.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/partial/slp_run-9.c: Diito.
* gcc.target/riscv/rvv/autovec/post-ra-avl.c: Diito.
* gcc.target/riscv/rvv/autovec/pr110950.c: Diito.
* gcc.target/riscv/rvv/autovec/pr110964.c: Diito.
* gcc.target/riscv/rvv/autovec/pr110989.c: Diito.
* gcc.target/riscv/rvv/autovec/pr111232.c: Diito.
* gcc.target/riscv/rvv/autovec/pr111295.c: Diito.
* gcc.target/riscv/rvv/autovec/pr111313.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112326.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112552.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112554.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112561.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112597-1.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112599-1.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112599-3.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112694-1.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112854.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112872.c: Diito.
* gcc.target/riscv/rvv/autovec/pr112999.c: Diito.
* gcc.target/riscv/rvv/autovec/pr113393-1.c: Diito.
* gcc.target/riscv/rvv/autovec/pr113393-2.c: Diito.
* gcc.target/riscv/rvv/autovec/pr113393-3.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-1.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-10.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-11.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-12.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-13.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-14.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-2.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-3.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-4.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-5.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-6.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-7.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-8.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last-9.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-11.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-12.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-13.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-14.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/extract_last_run-9.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-1.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-10.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-2.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-3.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-4.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-5.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-6.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-7.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-8.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc-9.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_call-1.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_call-2.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_call-3.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_call-4.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_call-5.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict-1.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict-2.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict-3.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict-4.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict-5.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict-6.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict-7.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_strict_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_zvfh-10.c: Diito.
* gcc.target/riscv/rvv/autovec/reduc/reduc_zvfh_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/scalable-1.c: Diito.
* gcc.target/riscv/rvv/autovec/series-1.c: Diito.
* gcc.target/riscv/rvv/autovec/series_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/slp-mask-1.c: Diito.
* gcc.target/riscv/rvv/autovec/slp-mask-run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load-1.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load-2.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load-3.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load-4.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load-5.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load-6.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load-7.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_load_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store-1.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store-2.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store-3.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store-4.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store-5.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store-6.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store-7.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/mask_struct_store_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-1.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-10.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-11.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-12.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-13.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-14.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-15.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-16.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-17.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-18.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-2.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-3.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-4.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-5.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-6.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-7.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-8.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect-9.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-11.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-12.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-13.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-14.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-15.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-16.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-17.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-18.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/struct/struct_vect_run-9.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-1.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-10.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-11.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-12.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-2.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-3.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-4.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-5.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-6.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-7.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-8.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop-9.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-1.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-10.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-11.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-12.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-2.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-3.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-4.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-5.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-6.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-7.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-8.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm-9.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-11.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-12.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_nofm_run-9.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-11.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-12.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run-9.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-1.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-10.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-11.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-12.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-2.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-3.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-4.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-5.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-6.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-7.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-8.c: Diito.
* gcc.target/riscv/rvv/autovec/ternop/ternop_run_zvfh-9.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/abs-run.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/abs-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/abs-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/abs-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/popcount-1.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/popcount-2.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vfsqrt-run.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vfsqrt-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vfsqrt-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vfsqrt-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vneg-run.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vneg-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vneg-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vneg-zvfh-run.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vnot-run.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vnot-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/unop/vnot-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/v-1.c: Diito.
* gcc.target/riscv/rvv/autovec/v-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-10.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-11.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-12.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-13.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-14.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-7.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-8.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/bitmask-9.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/combine-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/combine-merge_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/compress_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/consecutive_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/init-repeat-sequence-run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/insert_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/insert_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge-7.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/merge_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/perm_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/pr110985.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/trailing-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls-vlmax/trailing_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-10.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-7.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-8.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-9.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/vls/pr110994.c: Diito.
* gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv32.c: Diito.
* gcc.target/riscv/rvv/autovec/vmv-imm-fixed-rv64.c: Diito.
* gcc.target/riscv/rvv/autovec/vmv-imm-run.c: Diito.
* gcc.target/riscv/rvv/autovec/vmv-imm-rv32.c: Diito.
* gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c: Diito.
* gcc.target/riscv/rvv/autovec/vreinterpet-fixed.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/vec-avg-run.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/vec-avg-rv32gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/vec-avg-rv64gcv.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-10.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-11.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-12.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-2.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-3.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-4.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-5.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-6.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-7.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-8.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-9.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-2.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-3.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-4.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-5.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-6.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-7.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-8.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen-complicate-9.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_reduc-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-2.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_reduc_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-10.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-11.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-12.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-2.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-3.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-4.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-5.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-6.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-7.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-8.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run-9.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-1.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-10.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-11.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-12.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-2.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-3.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-5.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-6.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-7.c: Diito.
* gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-8.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f-3.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f_zvl1024b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f_zvl128b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f_zvl128b-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f_zvl2048b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f_zvl256b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f_zvl4096b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32f_zvl512b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x-3.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x_zvl1024b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x_zvl128b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x_zvl128b-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x_zvl2048b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x_zvl256b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x_zvl4096b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve32x_zvl512b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d-3.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d_zvl1024b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d_zvl128b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d_zvl128b-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d_zvl2048b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d_zvl256b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d_zvl4096b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64d_zvl512b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f-3.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f_zvl1024b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f_zvl128b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f_zvl128b-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f_zvl2048b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f_zvl256b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f_zvl4096b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64f_zvl512b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x-3.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x_zvl1024b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x_zvl128b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x_zvl128b-2.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x_zvl2048b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x_zvl256b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x_zvl4096b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zve64x_zvl512b-1.c: Diito.
* gcc.target/riscv/rvv/autovec/zvfhmin-1.c: Diito.
* gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-1.c: Diito.
* gcc.target/riscv/rvv/base/abi-callee-saved-1-fixed-2.c: Diito.
* gcc.target/riscv/rvv/base/cpymem-1.c: Diito.
* gcc.target/riscv/rvv/base/cpymem-2.c: Diito.
* gcc.target/riscv/rvv/base/cpymem-strategy-3.c: Diito.
* gcc.target/riscv/rvv/base/cpymem-strategy-4.c: Diito.
* gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c: Diito.
* gcc.target/riscv/rvv/base/float-point-frm-autovec-1.c: Diito.
* gcc.target/riscv/rvv/base/float-point-frm-autovec-2.c: Diito.
* gcc.target/riscv/rvv/base/float-point-frm-autovec-3.c: Diito.
* gcc.target/riscv/rvv/base/float-point-frm-autovec-4.c: Diito.
* gcc.target/riscv/rvv/base/poly-selftest-1.c: Diito.
* gcc.target/riscv/rvv/base/pr110119-1.c: Diito.
* gcc.target/riscv/rvv/base/pr110119-2.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-0.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-1.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-10.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-2.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-3.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-4.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-5.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-6.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-7.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-8.c: Diito.
* gcc.target/riscv/rvv/base/pr111720-9.c: Diito.
* gcc.target/riscv/rvv/base/vf_avl-1.c: Diito.
* gcc.target/riscv/rvv/base/vf_avl-2.c: Diito.
* gcc.target/riscv/rvv/base/vf_avl-3.c: Diito.
* gcc.target/riscv/rvv/base/vf_avl-4.c: Diito.
* gcc.target/riscv/rvv/base/zvl-unimplemented-1.c: Diito.
* gcc.target/riscv/rvv/base/zvl-unimplemented-2.c: Diito.
* gcc.target/riscv/rvv/rvv.exp: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_multiple-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_prop-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_prop-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-100.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-101.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-102.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-103.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-104.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-105.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-106.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-107.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-108.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-109.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-20.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-21.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-22.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-23.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-24.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-25.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-26.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-27.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-28.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-29.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-30.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-31.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-32.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-33.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-34.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-35.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-36.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-37.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-38.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-39.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-40.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-41.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-42.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-43.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-44.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-45.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-46.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-47.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-48.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-49.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-50.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-51.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-52.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-53.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-54.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-55.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-56.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-57.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-58.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-59.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-60.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-61.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-62.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-63.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-64.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-65.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-66.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-67.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-68.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-69.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-70.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-71.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-72.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-73.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-74.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-75.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-76.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-77.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-78.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-79.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-80.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-81.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-82.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-83.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-84.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-85.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-86.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-87.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-88.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-89.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-90.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-91.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-92.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-93.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-94.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-95.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-96.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-97.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-98.c: Diito.
* gcc.target/riscv/rvv/vsetvl/avl_single-99.c: Diito.
* gcc.target/riscv/rvv/vsetvl/dump-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/ffload-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/ffload-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/ffload-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/ffload-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/ffload-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/ffload-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_bb_prop-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_conflict-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_conflict-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_conflict-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_conflict-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_conflict-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_loop_invariant-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/imm_switch-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr108270.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109399.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109547.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109615.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109743-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109743-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109743-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109743-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109748.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109773-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109773-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr109974.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111037-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111037-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111037-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111037-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111234.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111255.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111927.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr111947.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112092-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112092-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112713-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112713-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112776.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112813-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112929-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr112988-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr113248.c: Diito.
* gcc.target/riscv/rvv/vsetvl/pr113696.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-20.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-21.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-22.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-23.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-24.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-25.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-26.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-27.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-28.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-29.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-30.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-31.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-32.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-33.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-34.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-35.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-36.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-37.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-38.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-39.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-40.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-41.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-42.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-43.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-44.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-45.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-46.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_back_prop-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-21.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-22.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-23.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-24.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-25.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-26.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-27.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-28.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_call-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_call-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_call-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_call-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_complex_loop-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_complex_loop-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_conflict-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-20.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-21.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-22.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-23.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-24.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-25.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-26.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-27.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-28.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_block-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_single_vtype-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vlmax_switch_vtype-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-20.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-21.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-22.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-23.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-24.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl_bug-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl_bug-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl_int.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvl_pre-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-1.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-10.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-11.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-12.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-13.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-14.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-15.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-16.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-17.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-18.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-19.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-2.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-20.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-3.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-4.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-5.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-6.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-7.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-8.c: Diito.
* gcc.target/riscv/rvv/vsetvl/vsetvlmax-9.c: Diito.
* gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c: Diito.
* gcc.target/riscv/rvv/base/rvv-vector-bits-1.c: New test.
* gcc.target/riscv/rvv/base/rvv-vector-bits-2.c: New test.
* gcc.target/riscv/rvv/base/rvv-vector-bits-3.c: New test.
* gcc.target/riscv/rvv/base/rvv-vector-bits-4.c: New test.
* gcc.target/riscv/rvv/base/rvv-vector-bits-5.c: New test.
* gcc.target/riscv/rvv/base/rvv-vector-bits-6.c: New test.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
atomic_compare_and_swapsi will use lr.w to do obtain the original value,
which sign extends to DI. RV64 only has DI comparisons, so we also need
to sign extend the expected value to DI as otherwise the comparison will
fail when the expected value has the 32nd bit set.
gcc/ChangeLog:
PR target/114130
* config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
extend the expected value if needed.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/pr114130.c: New.
Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
|
|
For a vec_init (_a, _a, _a, _a) with _a of mode DImode we try to
construct a "superword" of two "_a"s. This only works for modes < Pmode
when we can "shift and or" both halves into one Pmode register.
This patch disallows the optimization for inner_mode == Pmode and emits
a simple broadcast in such a case.
gcc/ChangeLog:
PR target/114028
* config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
Return false if inner mode is already Pmode.
(rvv_builder::is_all_same_sequence): New function.
(expand_vec_init): Emit broadcast if sequence is all same.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/pr114028.c: New test.
|
|
This builds for me, and I frequently have python-is-python3 type
packages installed so I think I've been implicitly testing it for a
while. Looks like Kito's tested similar configurations, and the
bugzilla indicates we should be moving over.
gcc/ChangeLog:
PR other/109668
* config/riscv/arch-canonicalize: Move to python3
* config/riscv/multilib-generator: Likewise
|
|
Upgrade the version of RVV intrinsic from 0.11 to 0.12.
PR target/114017
gcc/ChangeLog:
* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
the version to 0.12.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/predef-__riscv_v_intrinsic.c: Update the
version to 0.12.
* gcc.target/riscv/rvv/base/pr114017-1.c: New test.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
Enables assert that every typed instruction is associated with a
dfa reservation
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
Signed-off-by: Edwin Lu <ewlu@rivosinc.com>
|
|
Creates new generic vector pipeline file common to all cpu tunes.
Moves all vector related pipelines from generic-ooo to generic-vector-ooo.
Creates new vector crypto related insn reservations.
gcc/ChangeLog:
* config/riscv/generic-ooo.md (generic_ooo): Move reservation
(generic_ooo_vec_load): Ditto
(generic_ooo_vec_store): Ditto
(generic_ooo_vec_loadstore_seg): Ditto
(generic_ooo_vec_alu): Ditto
(generic_ooo_vec_fcmp): Ditto
(generic_ooo_vec_imul): Ditto
(generic_ooo_vec_fadd): Ditto
(generic_ooo_vec_fmul): Ditto
(generic_ooo_crypto): Ditto
(generic_ooo_perm): Ditto
(generic_ooo_vec_reduction): Ditto
(generic_ooo_vec_ordered_reduction): Ditto
(generic_ooo_vec_idiv): Ditto
(generic_ooo_vec_float_divsqrt): Ditto
(generic_ooo_vec_mask): Ditto
(generic_ooo_vec_vesetvl): Ditto
(generic_ooo_vec_setrm): Ditto
(generic_ooo_vec_readlen): Ditto
* config/riscv/riscv.md: Include generic-vector-ooo
* config/riscv/generic-vector-ooo.md: New file. To here
Signed-off-by: Edwin Lu <ewlu@rivosinc.com>
Co-authored-by: Robin Dapp <rdapp.gcc@gmail.com>
|
|
This patch adds non-vector related insn reservations and updates/creates
new insn reservations so all non-vector typed instructions have a reservation.
gcc/ChangeLog:
* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
(generic_ooo_branch): Ditto
* config/riscv/generic.md (generic_sfb_alu): Ditto
(generic_fmul_half): Ditto
* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
* config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
(sifive_7_popcount): Ditto
* config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
* config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
* config/riscv/vector.md: Change rdfrm to fmove
* config/riscv/zc.md: Change pushpop to load/store
Signed-off-by: Edwin Lu <ewlu@rivosinc.com>
|
|
Update in v2: Add dump information.
This patch fixes the following ineffective vsetvl insertion:
void f (int32_t * restrict in, int32_t * restrict out, size_t n, size_t cond, size_t cond2)
{
for (size_t i = 0; i < n; i++)
{
if (i == cond) {
vint8mf8_t v = *(vint8mf8_t*)(in + i + 100);
*(vint8mf8_t*)(out + i + 100) = v;
} else if (i == cond2) {
vfloat32mf2_t v = *(vfloat32mf2_t*)(in + i + 200);
*(vfloat32mf2_t*)(out + i + 200) = v;
} else if (i == (cond2 - 1)) {
vuint16mf2_t v = *(vuint16mf2_t*)(in + i + 300);
*(vuint16mf2_t*)(out + i + 300) = v;
} else {
vint8mf4_t v = *(vint8mf4_t*)(in + i + 400);
*(vint8mf4_t*)(out + i + 400) = v;
}
}
}
Before this patch:
f:
.LFB0:
.cfi_startproc
beq a2,zero,.L12
addi a7,a0,400
addi a6,a1,400
addi a0,a0,1600
addi a1,a1,1600
li a5,0
addi t6,a4,-1
vsetvli t3,zero,e8,mf8,ta,ma ---> ineffective uplift
.L7:
beq a3,a5,.L15
beq a4,a5,.L16
beq t6,a5,.L17
vsetvli t1,zero,e8,mf4,ta,ma
vle8.v v1,0(a0)
vse8.v v1,0(a1)
vsetvli t3,zero,e8,mf8,ta,ma
.L4:
addi a5,a5,1
addi a7,a7,4
addi a6,a6,4
addi a0,a0,4
addi a1,a1,4
bne a2,a5,.L7
.L12:
ret
.L15:
vle8.v v1,0(a7)
vse8.v v1,0(a6)
j .L4
.L17:
vsetvli t1,zero,e8,mf4,ta,ma
addi t5,a0,-400
addi t4,a1,-400
vle16.v v1,0(t5)
vse16.v v1,0(t4)
vsetvli t3,zero,e8,mf8,ta,ma
j .L4
.L16:
addi t5,a0,-800
addi t4,a1,-800
vle32.v v1,0(t5)
vse32.v v1,0(t4)
j .L4
It's obvious that we are hoisting the e8mf8 vsetvl to the top. It's ineffective since e8mf8 comes from
low probability block which is if (i == cond).
For this case, we disable such fusion.
After this patch:
f:
beq a2,zero,.L12
addi a7,a0,400
addi a6,a1,400
addi a0,a0,1600
addi a1,a1,1600
li a5,0
addi t6,a4,-1
.L7:
beq a3,a5,.L15
beq a4,a5,.L16
beq t6,a5,.L17
vsetvli t1,zero,e8,mf4,ta,ma
vle8.v v1,0(a0)
vse8.v v1,0(a1)
.L4:
addi a5,a5,1
addi a7,a7,4
addi a6,a6,4
addi a0,a0,4
addi a1,a1,4
bne a2,a5,.L7
.L12:
ret
.L15:
vsetvli t3,zero,e8,mf8,ta,ma
vle8.v v1,0(a7)
vse8.v v1,0(a6)
j .L4
.L17:
addi t5,a0,-400
addi t4,a1,-400
vsetvli t1,zero,e8,mf4,ta,ma
vle16.v v1,0(t5)
vse16.v v1,0(t4)
j .L4
.L16:
addi t5,a0,-800
addi t4,a1,-800
vsetvli t3,zero,e32,mf2,ta,ma
vle32.v v1,0(t5)
vse32.v v1,0(t4)
j .L4
Tested on both RV32/RV64 no regression. Ok for trunk ?
PR target/113696
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
Suppress vsetvl fusion.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/vsetvl/pr113696.c: New test.
|
|
*sge<u>_<X:mode><GPR:mode> pattern has referenced operand[2] which is
invalid...it should just use `slti<u>` rather than `slti%i2<u>`.
gcc/ChangeLog:
PR target/106543
* config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
pattern.
|
|
The output of -march=help is like below:
```
All available -march extensions for RISC-V:
Name Version
i 2.0, 2.1
e 2.0
m 2.0
a 2.0, 2.1
f 2.0, 2.2
d 2.0, 2.2
...
```
Also support -print-supported-extensions and --print-supported-extensions for
clang compatibility.
gcc/ChangeLog:
PR target/109349
* common/config/riscv/riscv-common.cc (riscv_arch_help): New.
* config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
(RISCV_MINOR_VERSION_BASE): Ditto.
(RISCV_REVISION_VERSION_BASE): Ditto.
* config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
rather than magic number.
* config/riscv/riscv.h (riscv_arch_help): New.
(EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
(DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
--print-supported-extensions.
* config/riscv/riscv.opt (march=help): New.
(print-supported-extensions): New.
(-print-supported-extensions): New.
* doc/invoke.texi (RISC-V Options): Document -march=help.
Reviewed-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
UNSPEC_AUIPC. [PR113742]
gcc/ChangeLog:
PR target/113742
* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/pr113742.c: New test.
|
|
When build with "-Werror=format-diag", there will be one misspelled
term args as below. This patch would like fix it by taking the term
arguments instead.
../../gcc/config/riscv/riscv-vector-builtins.cc: In function 'tree_node*
riscv_vector::resolve_overloaded_builtin(location_t, unsigned int, tree,
vec<tree_node*, va_gc>*)':
../../gcc/config/riscv/riscv-vector-builtins.cc:4633:65: error:
misspelled term 'args' in format; use 'arguments' instead
[-Werror=format-diag]
4633 | error_at (loc, "no matching function call to %qE with empty
args", fndecl);
gcc/ChangeLog:
* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
Replace args to arguments for misspelled term.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/pr113766-1.c: Adjust the test cases.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
There is another corn case when similar as below example:
void test (void)
{
__riscv_vaadd ();
}
We report error when overloaded function with empty args. For example:
test.c: In function 'foo':
test.c:8:3: error: no matching function call to '__riscv_vaadd' with empty args
8 | __riscv_vaadd ();
| ^~~~~~~~~~~~~~~~~~~~
Unfortunately, it will meet another ICE similar to below after above
message. The underlying build function checker will have zero args
and break some assumption of the function checker. For example, the
count of args is not less than 2.
ice.c: In function ‘foo’:
ice.c:8:3: internal compiler error: in require_immediate, at
config/riscv/riscv-vector-builtins.cc:4252
8 | __riscv_vaadd ();
| ^~~~~~~~~~~~~
0x20b36ac riscv_vector::function_checker::require_immediate(unsigned
int, long, long) const
.../__RISC-V_BUILD__/../gcc/config/riscv/riscv-vector-builtins.cc:4252
0x20b890c riscv_vector::alu_def::check(riscv_vector::function_checker&) const
.../__RISC-V_BUILD__/../gcc/config/riscv/riscv-vector-builtins-shapes.cc:387
0x20b38d7 riscv_vector::function_checker::check()
.../__RISC-V_BUILD__/../gcc/config/riscv/riscv-vector-builtins.cc:4315
0x20b4876 riscv_vector::check_builtin_call(unsigned int, vec<unsigned int, va_heap, vl_ptr>,
.../__RISC-V_BUILD__/../gcc/config/riscv/riscv-vector-builtins.cc:4605
0x2069393 riscv_check_builtin_call
.../__RISC-V_BUILD__/../gcc/config/riscv/riscv-c.cc:227
Below test are passed for this patch.
* The riscv regression tests.
PR target/113766
gcc/ChangeLog:
* config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
sure the c.arg_num is >= 2 before checking.
(struct build_frm_base): Ditto.
(struct narrow_alu_def): Ditto.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/pr113766-1.c: Add new cases.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
There is one corn case when similar as below example:
void test (void)
{
__riscv_vfredosum_tu ();
}
It will meet ICE because of the implement details of overloaded function
in gcc. According to the rvv intrinisc doc, we have no such overloaded
function with empty args. Unfortunately, we register the empty args
function as overloaded for avoiding conflict. Thus, there will be actual
one register function after return NULL_TREE back to the middle-end,
and finally result in ICE when expanding. For example:
1. First we registered void __riscv_vfredmax () as the overloaded function.
2. Then resolve_overloaded_builtin (this func) return NULL_TREE.
3. The functions register in step 1 bypass the args check as empty args.
4. Finally, fall into expand_builtin with empty args and meet ICE.
Here we report error when overloaded function with empty args. For example:
test.c: In function 'foo':
test.c:8:3: error: no matching function call to '__riscv_vfredosum_tu' with empty args
8 | __riscv_vfredosum_tu();
| ^~~~~~~~~~~~~~~~~~~~
Below test are passed for this patch.
* The riscv regression tests.
PR target/113766
gcc/ChangeLog:
* config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
the signature of func.
* config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
* config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
overloaded func with empty args error.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/base/pr113766-1.c: New test.
* gcc.target/riscv/rvv/base/pr113766-2.c: New test.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
This patch fixes issue reported by Jeff.
Testing is running. Ok for trunk if I passed the testing with no regression ?
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
(pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
|
|
A recent commit introduced a compiler warning in thead.cc:
error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
1144 | fprintf (file, "(%s),"HOST_WIDE_INT_PRINT_DEC",%u", reg_names[REGNO (addr.reg)],
| ^
This commit addresses this issue and breaks the line such that it won't
exceed 80 characters.
gcc/ChangeLog:
* config/riscv/thead.cc (th_print_operand_address): Fix compiler
warning.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|
|
gcc/ChangeLog:
* config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
* doc/invoke.texi (RISC-V Options): Add sifive-p450,
sifive-p670.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/mcpu-sifive-p450.c: New test.
* gcc.target/riscv/mcpu-sifive-p670.c: New test.
|
|
Add sifive p400 series scheduler module. For more information
see https://www.sifive.com/cores/performance-p450-470.
gcc/ChangeLog:
* config/riscv/riscv.md: Include sifive-p400.md.
* config/riscv/sifive-p400.md: New file.
* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
Add sifive_p400.
* config/riscv/riscv.cc (sifive_p400_tune_info): New.
* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
* doc/invoke.texi (RISC-V Options): Add sifive-p400-series
|
|
This patch adjusts the costs so that we treat REG and SUBREG expressions the
same for costing.
This was motivated by bt_skip_func and bt_find_func in xz and results in nearly
a 5% improvement in the dynamic instruction count for input #2 and smaller, but
definitely visible improvements pretty much across the board. Exceptions would
be perlbench input #1 and exchange2 which showed very small regressions.
In the bt_find_func and bt_skip_func cases we have something like this:
> (insn 10 7 11 2 (set (reg/v:DI 136 [ x ])
> (zero_extend:DI (subreg/s/u:SI (reg/v:DI 137 [ a ]) 0))) "zz.c":6:21 387 {*zero_extendsidi2_bitmanip}
> (nil))
> (insn 11 10 12 2 (set (reg:DI 142 [ _1 ])
> (plus:DI (reg/v:DI 136 [ x ])
> (reg/v:DI 139 [ b ]))) "zz.c":7:23 5 {adddi3}
> (nil))
[ ... ]> (insn 13 12 14 2 (set (reg:DI 143 [ _2 ])
> (plus:DI (reg/v:DI 136 [ x ])
> (reg/v:DI 141 [ c ]))) "zz.c":8:23 5 {adddi3}
> (nil))
Note the two uses of (reg 136). The best way to handle that in combine might be
a 3->2 split. But there's a much better approach if we look at fwprop...
(set (reg:DI 142 [ _1 ])
(plus:DI (zero_extend:DI (subreg/s/u:SI (reg/v:DI 137 [ a ]) 0))
(reg/v:DI 139 [ b ])))
change not profitable (cost 4 -> cost 8)
So that should be the same cost as a regular DImode addition when the ZBA
extension is enabled. But it ends up costing more because the clause to cost
this variant isn't prepared to handle a SUBREG. That results in the RTL above
having too high a cost and fwprop gives up.
One approach would be to replace the REG_P with REG_P || SUBREG_P in the
costing code. I ultimately decided against that and instead check if the
operand in question passes register_operand.
By far the most important case to handle is the DImode PLUS. But for the sake
of consistency, I changed the other instances in riscv_rtx_costs as well. For
those other cases we're talking about improvements in the .000001% range.
While we are into stage4, this just hits cost modeling which we've generally
agreed is still appropriate (though we were mostly talking about vector). So
I'm going to extend that general agreement ever so slightly and include scalar
cost modeling :-)
gcc/
* config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
similarly.
gcc/testsuite/
* gcc.target/riscv/reg_subreg_costs.c: New test.
Co-authored-by: Jivan Hakobyan <jivanhakobyan9@gmail.com>
|
|
This patch fixes the following:
vsetvli a5,a1,e32,m1,tu,ma
slli a4,a5,2
sub a1,a1,a5
vle32.v v2,0(a0)
add a0,a0,a4
vadd.vv v1,v2,v1
bne a1,zero,.L3
vsetivli zero,1,e32,m1,ta,ma
vmv.s.x v2,zero
vsetvli a5,zero,e32,m1,ta,ma ---> Redundant vsetvl.
vredsum.vs v1,v1,v2
vmv.x.s a0,v1
ret
VSETVL PASS is able to fuse avl = 1 of scalar move and VLMAX avl of reduction.
However, this following RTL blocks the fusion in dependence analysis in VSETVL PASS:
(insn 49 24 50 5 (set (reg:RVVM1SI 98 v2 [148])
(if_then_else:RVVM1SI (unspec:RVVMF32BI [
(const_vector:RVVMF32BI [
(const_int 1 [0x1])
repeat [
(const_int 0 [0])
]
])
(const_int 1 [0x1])
(const_int 2 [0x2]) repeated x2
(const_int 0 [0])
(reg:SI 66 vl)
(reg:SI 67 vtype)
] UNSPEC_VPREDICATE)
(const_vector:RVVM1SI repeat [
(const_int 0 [0])
])
(unspec:RVVM1SI [
(reg:DI 0 zero)
] UNSPEC_VUNDEF))) 3813 {*pred_broadcastrvvm1si_zero}
(nil))
(insn 50 49 51 5 (set (reg:DI 15 a5 [151]) ----> It set a5, blocks the following VLMAX into the scalar move above.
(unspec:DI [
(const_int 32 [0x20])
] UNSPEC_VLMAX)) 2566 {vlmax_avldi}
(expr_list:REG_EQUIV (unspec:DI [
(const_int 32 [0x20])
] UNSPEC_VLMAX)
(nil)))
(insn 51 50 52 5 (set (reg:RVVM1SI 97 v1 [150])
(unspec:RVVM1SI [
(unspec:RVVMF32BI [
(const_vector:RVVMF32BI repeat [
(const_int 1 [0x1])
])
(reg:DI 15 a5 [151])
(const_int 2 [0x2])
(const_int 1 [0x1])
(reg:SI 66 vl)
(reg:SI 67 vtype)
] UNSPEC_VPREDICATE)
(unspec:RVVM1SI [
(reg:RVVM1SI 97 v1 [orig:134 vect_result_14.6 ] [134])
(reg:RVVM1SI 98 v2 [148])
] UNSPEC_REDUC_SUM)
(unspec:RVVM1SI [
(reg:DI 0 zero)
] UNSPEC_VUNDEF)
] UNSPEC_REDUC)) 17541 {pred_redsumrvvm1si}
(expr_list:REG_DEAD (reg:RVVM1SI 98 v2 [148])
(expr_list:REG_DEAD (reg:SI 66 vl)
(expr_list:REG_DEAD (reg:DI 15 a5 [151])
(expr_list:REG_DEAD (reg:DI 0 zero)
(nil))))))
Such situation can only happen on auto-vectorization, never happen on intrinsic codes.
Since the reduction is passed VLMAX AVL, it should be more natural to pass VLMAX to the scalar move which initial the value of the reduction.
After this patch:
vsetvli a5,a1,e32,m1,tu,ma
slli a4,a5,2
sub a1,a1,a5
vle32.v v2,0(a0)
add a0,a0,a4
vadd.vv v1,v2,v1
bne a1,zero,.L3
vsetvli a5,zero,e32,m1,ta,ma
vmv.s.x v2,zero
vredsum.vs v1,v1,v2
vmv.x.s a0,v1
ret
Tested on both RV32/RV64 no regression.
PR target/113697
gcc/ChangeLog:
* config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/pr113697.c: New test.
|
|
This reverts commit 74489c19070703361acc20bc172f304cae845a96.
|
|
Realize in recent benchmark evaluation (coremark-pro zip-test):
vid.v v2
vmv.v.i v5,0
.L9:
vle16.v v3,0(a4)
vrsub.vx v4,v2,a6 ---> LICM failed to hoist it outside the loop.
The root cause is:
(insn 56 47 57 4 (set (subreg:DI (reg:HI 220) 0)
(reg:DI 223)) "rvv.c":11:9 208 {*movdi_64bit} -> Its result used by the following vrsub.vx then supress the hoist of the vrsub.vx
(nil))
(insn 57 56 59 4 (set (reg:RVVMF2HI 216)
(if_then_else:RVVMF2HI (unspec:RVVMF32BI [
(const_vector:RVVMF32BI repeat [
(const_int 1 [0x1])
])
(reg:DI 350)
(const_int 2 [0x2]) repeated x2
(const_int 1 [0x1])
(reg:SI 66 vl)
(reg:SI 67 vtype)
] UNSPEC_VPREDICATE)
(minus:RVVMF2HI (vec_duplicate:RVVMF2HI (reg:HI 220))
(reg:RVVMF2HI 217))
(unspec:RVVMF2HI [
(reg:DI 0 zero)
] UNSPEC_VUNDEF))) "rvv.c":11:9 6938 {pred_subrvvmf2hi_reverse_scalar}
(expr_list:REG_DEAD (reg:HI 220)
(nil)))
This patch fixes it generate (set (reg:HI) (subreg:HI (reg:DI))) instead of (set (subreg:DI (reg:DI)) (reg:DI)).
After this patch:
vid.v v2
vrsub.vx v2,v2,a7
vmv.v.i v4,0
.L3:
vle16.v v3,0(a4)
Tested on both RV32 and RV64 no regression.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/poly_licm-1.c: New test.
* gcc.target/riscv/rvv/autovec/poly_licm-2.c: New test.
|
|
This patch would like to cleanup some comments which are out of date or incorrect.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
(riscv_pass_by_reference): Ditto.
(riscv_fntype_abi): Ditto.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
I realize there is a RTL regression between GCC-14 and GCC-13.
https://godbolt.org/z/Ga7K6MqaT
GCC-14:
(insn 9 13 31 2 (set (reg:DI 15 a5 [138])
(unspec:DI [
(const_int 64 [0x40])
] UNSPEC_VLMAX)) "/app/example.c":5:15 2566 {vlmax_avldi}
(expr_list:REG_EQUIV (unspec:DI [
(const_int 64 [0x40])
] UNSPEC_VLMAX)
(nil)))
(insn 31 9 10 2 (parallel [
(set (reg:DI 15 a5 [138])
(unspec:DI [
(reg:DI 0 zero)
(const_int 32 [0x20])
(const_int 7 [0x7])
(const_int 1 [0x1]) repeated x2
] UNSPEC_VSETVL))
(set (reg:SI 66 vl)
(unspec:SI [
(reg:DI 0 zero)
(const_int 32 [0x20])
(const_int 7 [0x7])
] UNSPEC_VSETVL))
(set (reg:SI 67 vtype)
(unspec:SI [
(const_int 32 [0x20])
(const_int 7 [0x7])
(const_int 1 [0x1]) repeated x2
] UNSPEC_VSETVL))
]) "/app/example.c":5:15 3281 {vsetvldi}
(nil))
GCC-13:
(insn 10 7 26 2 (set (reg/f:DI 11 a1 [139])
(plus:DI (reg:DI 11 a1 [142])
(const_int 800 [0x320]))) "/app/example.c":6:32 5 {adddi3}
(nil))
(insn 26 10 9 2 (parallel [
(set (reg:DI 15 a5)
(unspec:DI [
(reg:DI 0 zero)
(const_int 32 [0x20])
(const_int 7 [0x7])
(const_int 1 [0x1]) repeated x2
] UNSPEC_VSETVL))
(set (reg:SI 66 vl)
(unspec:SI [
(reg:DI 0 zero)
(const_int 32 [0x20])
(const_int 7 [0x7])
] UNSPEC_VSETVL))
(set (reg:SI 67 vtype)
(unspec:SI [
(const_int 32 [0x20])
(const_int 7 [0x7])
(const_int 1 [0x1]) repeated x2
] UNSPEC_VSETVL))
]) "/app/example.c":5:15 792 {vsetvldi}
(nil))
GCC-13 doesn't have:
(insn 9 13 31 2 (set (reg:DI 15 a5 [138])
(unspec:DI [
(const_int 64 [0x40])
] UNSPEC_VLMAX)) "/app/example.c":5:15 2566 {vlmax_avldi}
(expr_list:REG_EQUIV (unspec:DI [
(const_int 64 [0x40])
] UNSPEC_VLMAX)
(nil)))
vsetvl_pre doesn't emit any assembler which is just used for occupying scalar register.
It should be removed in VSETVL PASS.
Tested on both RV32 and RV64 no regression.
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
(pre_vsetvl::cleaup): Remove vsetvl_pre.
(pre_vsetvl::remove_vsetvl_pre_insns): New function.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/vsetvl/vsetvl_pre-1.c: New test.
|
|
Add sifive p600 series scheduler module. For more information
see https://www.sifive.com/cores/performance-p650-670.
Add sifive-p650, sifive-p670 for mcpu option will come in separate patches.
gcc/ChangeLog:
* config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
attribute, and include sifive-p600.md.
* config/riscv/generic-ooo.md: Update type attribute.
* config/riscv/generic.md: Update type attribute.
* config/riscv/sifive-7.md: Update type attribute.
* config/riscv/sifive-p600.md: New file.
* config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
Add sifive_p600.
* config/riscv/riscv.cc (sifive_p600_tune_info): New.
* config/riscv/riscv.h (TARGET_SFB_ALU): Update.
* doc/invoke.texi (RISC-V Options): Add sifive-p600-series
|
|
The RISC-V Profiles specification here:
https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc#7-new-isa-extensions
These extensions don't add any new features but
describe existing features. So this patch only adds parsing.
Za64rs: Reservation set size of 64 bytes
Za128rs: Reservation set size of 128 bytes
Ziccif: Main memory supports instruction fetch with atomicity requirement
Ziccrse: Main memory supports forward progress on LR/SC sequences
Ziccamoa: Main memory supports all atomics in A
Zicclsm: Main memory supports misaligned loads/stores
Zic64b: Cache block size isf 64 bytes
gcc/ChangeLog:
* common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
* config/riscv/riscv.opt: New macro for 7 new unprivileged
extensions.
* doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/za-ext.c: New test.
* gcc.target/riscv/zi-ext.c: New test.
|
|
This reverts commit 26c34b809cd1a6249027730a8b52bbf6a1c0f4a8.
|
|
This reverts commit e56fb037d9d265682f5e7217d8a4c12a8d3fddf8.
|
|
This reverts commit 23cd2961bd2ff63583f46e3499a07bd54491d45c.
|
|
Enables assert that every typed instruction is associated with a
dfa reservation
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
|
|
Creates new generic vector pipeline file common to all cpu tunes.
Moves all vector related pipelines from generic-ooo to generic-vector-ooo.
Creates new vector crypto related insn reservations.
gcc/ChangeLog:
* config/riscv/generic-ooo.md (generic_ooo): Move reservation
(generic_ooo_vec_load): ditto
(generic_ooo_vec_store): ditto
(generic_ooo_vec_loadstore_seg): ditto
(generic_ooo_vec_alu): ditto
(generic_ooo_vec_fcmp): ditto
(generic_ooo_vec_imul): ditto
(generic_ooo_vec_fadd): ditto
(generic_ooo_vec_fmul): ditto
(generic_ooo_crypto): ditto
(generic_ooo_perm): ditto
(generic_ooo_vec_reduction): ditto
(generic_ooo_vec_ordered_reduction): ditto
(generic_ooo_vec_idiv): ditto
(generic_ooo_vec_float_divsqrt): ditto
(generic_ooo_vec_mask): ditto
(generic_ooo_vec_vesetvl): ditto
(generic_ooo_vec_setrm): ditto
(generic_ooo_vec_readlen): ditto
* config/riscv/riscv.md: include generic-vector-ooo
* config/riscv/generic-vector-ooo.md: New file. to here
Signed-off-by: Edwin Lu <ewlu@rivosinc.com>
Co-authored-by: Robin Dapp <rdapp.gcc@gmail.com>
|
|
This patch adds non-vector related insn reservations and updates/creates
new insn reservations so all non-vector typed instructions have a reservation.
gcc/ChangeLog:
* config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
(generic_ooo_branch): ditto
* config/riscv/generic.md (generic_sfb_alu): ditto
(generic_fmul_half): ditto
* config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
* config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
(sifive_7_popcount): ditto
* config/riscv/vector.md: change rdfrm to fmove
* config/riscv/zc.md: change pushpop to load/store
Signed-off-by: Edwin Lu <ewlu@rivosinc.com>
|
|
The compile time issue was discovered in SPEC 2017 wrf:
Use time and -ftime-report to analyze the profile data of SPEC 2017 wrf compilation .
Before this patch (Lazy vsetvl):
scheduling : 121.89 ( 15%) 0.53 ( 11%) 122.72 ( 15%) 13M ( 1%)
machine dep reorg : 424.61 ( 53%) 1.84 ( 37%) 427.44 ( 53%) 5290k ( 0%)
real 13m27.074s
user 13m19.539s
sys 0m5.180s
Simple vsetvl:
machine dep reorg : 0.10 ( 0%) 0.00 ( 0%) 0.11 ( 0%) 4138k ( 0%)
real 6m5.780s
user 6m2.396s
sys 0m2.373s
The machine dep reorg is the compile time of VSETVL PASS (424 seconds) which counts 53% of
the compilation time, spends much more time than scheduling.
After investigation, the critical patch of VSETVL pass is compute_lcm_local_properties which
is called every iteration of phase 2 (earliest fusion) and phase 3 (global lcm).
This patch optimized the codes of compute_lcm_local_properties to reduce the compilation time.
After this patch:
scheduling : 117.51 ( 27%) 0.21 ( 6%) 118.04 ( 27%) 13M ( 1%)
machine dep reorg : 80.13 ( 18%) 0.91 ( 26%) 81.26 ( 18%) 5290k ( 0%)
real 7m25.374s
user 7m20.116s
sys 0m3.795s
The optimization of this patch is very obvious, lazy VSETVL PASS: 424s (53%) -> 80s (18%) which
spend less time than scheduling.
Tested on both RV32 and RV64 no regression. Ok for trunk ?
PR target/113495
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
(pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
(pre_vsetvl::compute_transparent): New function.
(pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
|
|
According to the issue as below.
https://hub.fgit.cf/riscv-non-isa/riscv-elf-psabi-doc/pull/416
When the mode size of vls integer mode is less than 2 * XLEN, we will
take the gpr for both the args and the return values. Instead of the
reference. For example the below code:
typedef short v8hi __attribute__ ((vector_size (16)));
v8hi __attribute__((noinline))
add (v8hi a, v8hi b)
{
v8hi r = a + b;
return r;
}
Before this patch:
add:
vsetivli zero,8,e16,m1,ta,ma
vle16.v v1,0(a1) <== arg by reference
vle16.v v2,0(a2) <== arg by reference
vadd.vv v1,v1,v2
vse16.v v1,0(a0) <== return by reference
ret
After this patch:
add:
addi sp,sp,-32
sd a0,0(sp) <== arg by register a0 - a3
sd a1,8(sp)
sd a2,16(sp)
sd a3,24(sp)
addi a5,sp,16
vsetivli zero,8,e16,m1,ta,ma
vle16.v v2,0(sp)
vle16.v v1,0(a5)
vadd.vv v1,v1,v2
vse16.v v1,0(sp)
ld a0,0(sp) <== return by a0 - a1.
ld a1,8(sp)
addi sp,sp,32
jr ra
For vls floating point, we take the same rules as integer and passed by
the gpr or reference.
The riscv regression passed for this patch.
gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
calculate the gpr count required by vls mode.
(riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
(riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
for vls mode.
(riscv_get_arg_info): Add vls mode handling.
(riscv_pass_by_reference): Return false if arg info has no zero gpr count.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/vls/def.h: Add new helper macro.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-1.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-10.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-2.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-3.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-4.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-5.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-6.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-7.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-8.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-9.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-1.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-2.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-3.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-4.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-5.c: New test.
* gcc.target/riscv/rvv/autovec/vls/calling-convention-run-6.c: New test.
Signed-off-by: Pan Li <pan2.li@intel.com>
|
|
The UNSPEC_XTHEAD* macros ended up in the unspecv enum,
which broke gcc/testsuite/gcc.target/riscv/xtheadfmv-fmv.c.
The INSNs expect these unspecs to be not volatile.
Further, there is not reason to have them defined volatile.
So let's simply move the macros into the unspec enum.
With this patch we have again 0 fails in riscv.exp.
gcc/ChangeLog:
* config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
|