From: Juzhe-Zhong <juzhe.zh...@rivai.ai> PATCH 1: Add WHILE_LEN pattern in Loop Vectorizer to support decrement IV for RVV. PATCH 2: Enable basic auto-vectorization for RVV in RISC-V port. PATCH 3: Add testcases for basic RVV auto-vectorization of WHILE_LEN pattern includeing single rgroup test and multiple rgroup test of SLP.
*** BLURB HERE *** Juzhe-Zhong (3): VECT: Add WHILE_LEN pattern to support decrement IV manipulation for loop vectorizer. RISC-V: Enable basic RVV auto-vectorization and support WHILE_LEN/LEN_LOAD/LEN_STORE pattern RISC-V: Add testcase for basic RVV auto-vectorization gcc/config/riscv/autovec.md | 63 ++ gcc/config/riscv/riscv-opts.h | 16 + gcc/config/riscv/riscv-protos.h | 3 +- gcc/config/riscv/riscv-v.cc | 61 +- gcc/config/riscv/riscv-vector-switch.def | 47 +- gcc/config/riscv/riscv-vsetvl.cc | 210 ++++- gcc/config/riscv/riscv-vsetvl.h | 1 + gcc/config/riscv/riscv.cc | 34 +- gcc/config/riscv/riscv.opt | 40 + gcc/config/riscv/vector.md | 6 +- gcc/doc/md.texi | 14 + gcc/internal-fn.cc | 29 + gcc/internal-fn.def | 1 + gcc/optabs.def | 1 + gcc/testsuite/gcc.target/riscv/rvv/api/vadc.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vadd.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vand.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vcpop.c | 65 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vdiv.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vdivu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vfirst.c | 65 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vid.c | 185 +++++ .../gcc.target/riscv/rvv/api/viota.c | 185 +++++ .../gcc.target/riscv/rvv/api/vle16.c | 105 +++ .../gcc.target/riscv/rvv/api/vle32.c | 129 +++ .../gcc.target/riscv/rvv/api/vle64.c | 73 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vle8.c | 121 +++ gcc/testsuite/gcc.target/riscv/rvv/api/vlm.c | 37 + .../gcc.target/riscv/rvv/api/vloxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vloxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vloxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vloxei8.c | 401 +++++++++ .../gcc.target/riscv/rvv/api/vlse16.c | 105 +++ .../gcc.target/riscv/rvv/api/vlse32.c | 129 +++ .../gcc.target/riscv/rvv/api/vlse64.c | 73 ++ .../gcc.target/riscv/rvv/api/vlse8.c | 121 +++ .../gcc.target/riscv/rvv/api/vluxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vluxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vluxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vluxei8.c | 401 +++++++++ .../gcc.target/riscv/rvv/api/vmacc.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmadc.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmadd.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmand.c | 37 + .../gcc.target/riscv/rvv/api/vmandn.c | 37 + gcc/testsuite/gcc.target/riscv/rvv/api/vmax.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmaxu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmclr.c | 37 + .../gcc.target/riscv/rvv/api/vmerge.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vmin.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vminu.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vmmv.c | 37 + .../gcc.target/riscv/rvv/api/vmnand.c | 37 + .../gcc.target/riscv/rvv/api/vmnor.c | 37 + .../gcc.target/riscv/rvv/api/vmnot.c | 37 + gcc/testsuite/gcc.target/riscv/rvv/api/vmor.c | 37 + .../gcc.target/riscv/rvv/api/vmorn.c | 37 + .../gcc.target/riscv/rvv/api/vmsbc.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmsbf.c | 65 ++ .../gcc.target/riscv/rvv/api/vmseq.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmset.c | 37 + .../gcc.target/riscv/rvv/api/vmsge.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsgeu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsgt.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsgtu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsif.c | 65 ++ .../gcc.target/riscv/rvv/api/vmsle.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsleu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmslt.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsltu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmsne.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmsof.c | 65 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vmul.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vmulh.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmulhsu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmulhu.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vmv.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vmxnor.c | 37 + .../gcc.target/riscv/rvv/api/vmxor.c | 37 + gcc/testsuite/gcc.target/riscv/rvv/api/vneg.c | 185 +++++ .../gcc.target/riscv/rvv/api/vnmsac.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vnmsub.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vnot.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vnsra.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vnsrl.c | 249 ++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vor.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vrem.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vremu.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vrsub.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsbc.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vse16.c | 105 +++ .../gcc.target/riscv/rvv/api/vse32.c | 129 +++ .../gcc.target/riscv/rvv/api/vse64.c | 73 ++ gcc/testsuite/gcc.target/riscv/rvv/api/vse8.c | 121 +++ .../gcc.target/riscv/rvv/api/vsetvl.c | 97 +++ .../gcc.target/riscv/rvv/api/vsetvlmax.c | 97 +++ .../gcc.target/riscv/rvv/api/vsext_vf2.c | 129 +++ .../gcc.target/riscv/rvv/api/vsext_vf4.c | 81 ++ .../gcc.target/riscv/rvv/api/vsext_vf8.c | 41 + gcc/testsuite/gcc.target/riscv/rvv/api/vsll.c | 713 ++++++++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsm.c | 37 + .../gcc.target/riscv/rvv/api/vsoxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vsoxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vsoxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vsoxei8.c | 401 +++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsra.c | 361 ++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vsrl.c | 361 ++++++++ .../gcc.target/riscv/rvv/api/vsse16.c | 105 +++ .../gcc.target/riscv/rvv/api/vsse32.c | 129 +++ .../gcc.target/riscv/rvv/api/vsse64.c | 73 ++ .../gcc.target/riscv/rvv/api/vsse8.c | 121 +++ gcc/testsuite/gcc.target/riscv/rvv/api/vsub.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vsuxei16.c | 385 +++++++++ .../gcc.target/riscv/rvv/api/vsuxei32.c | 353 ++++++++ .../gcc.target/riscv/rvv/api/vsuxei64.c | 297 +++++++ .../gcc.target/riscv/rvv/api/vsuxei8.c | 401 +++++++++ .../gcc.target/riscv/rvv/api/vwadd.c | 489 +++++++++++ .../gcc.target/riscv/rvv/api/vwaddu.c | 489 +++++++++++ .../gcc.target/riscv/rvv/api/vwmacc.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmaccsu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmaccu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmaccus.c | 129 +++ .../gcc.target/riscv/rvv/api/vwmul.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmulsu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwmulu.c | 249 ++++++ .../gcc.target/riscv/rvv/api/vwsub.c | 489 +++++++++++ .../gcc.target/riscv/rvv/api/vwsubu.c | 489 +++++++++++ gcc/testsuite/gcc.target/riscv/rvv/api/vxor.c | 713 ++++++++++++++++ .../gcc.target/riscv/rvv/api/vzext_vf2.c | 129 +++ .../gcc.target/riscv/rvv/api/vzext_vf4.c | 81 ++ .../gcc.target/riscv/rvv/api/vzext_vf8.c | 41 + .../rvv/autovec/partial/multiple_rgroup-1.c | 6 + .../rvv/autovec/partial/multiple_rgroup-1.h | 304 +++++++ .../rvv/autovec/partial/multiple_rgroup-2.c | 6 + .../rvv/autovec/partial/multiple_rgroup-2.h | 546 ++++++++++++ .../rvv/autovec/partial/multiple_rgroup-2.s | 774 ++++++++++++++++++ .../autovec/partial/multiple_rgroup_run-1.c | 19 + .../autovec/partial/multiple_rgroup_run-2.c | 19 + .../rvv/autovec/partial/single_rgroup-1.c | 8 + .../rvv/autovec/partial/single_rgroup-1.h | 106 +++ .../rvv/autovec/partial/single_rgroup_run-1.c | 19 + .../gcc.target/riscv/rvv/autovec/template-1.h | 68 ++ .../gcc.target/riscv/rvv/autovec/v-1.c | 4 + .../gcc.target/riscv/rvv/autovec/v-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve32f-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve32f-2.c | 5 + .../riscv/rvv/autovec/zve32f_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve32f_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve32x-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve32x-2.c | 6 + .../riscv/rvv/autovec/zve32x_zvl128b-1.c | 5 + .../riscv/rvv/autovec/zve32x_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve64d-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve64d-2.c | 4 + .../riscv/rvv/autovec/zve64d_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve64d_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve64f-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve64f-2.c | 4 + .../riscv/rvv/autovec/zve64f_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve64f_zvl128b-2.c | 6 + .../gcc.target/riscv/rvv/autovec/zve64x-1.c | 4 + .../gcc.target/riscv/rvv/autovec/zve64x-2.c | 4 + .../riscv/rvv/autovec/zve64x_zvl128b-1.c | 4 + .../riscv/rvv/autovec/zve64x_zvl128b-2.c | 6 + gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 16 + .../gcc.target/riscv/rvv/vsetvl/vsetvl-17.c | 2 +- gcc/tree-ssa-loop-manip.cc | 4 +- gcc/tree-ssa-loop-manip.h | 2 +- gcc/tree-vect-loop-manip.cc | 186 ++++- gcc/tree-vect-loop.cc | 35 +- gcc/tree-vect-stmts.cc | 9 +- gcc/tree-vectorizer.h | 4 +- 172 files changed, 36786 insertions(+), 46 deletions(-) create mode 100644 gcc/config/riscv/autovec.md create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vadc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vadd.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vand.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vcpop.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vdiv.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vdivu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vfirst.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vid.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/viota.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vle8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlm.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vloxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vlse8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vluxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmacc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmadc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmadd.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmand.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmandn.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmax.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmaxu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmclr.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmerge.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmin.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vminu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmmv.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmnand.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmnor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmnot.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmorn.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsbc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsbf.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmseq.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmset.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsge.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsgeu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsgt.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsgtu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsif.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsle.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsleu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmslt.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsltu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsne.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmsof.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmul.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmulh.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmulhsu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmulhu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmv.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmxnor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vmxor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vneg.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnmsac.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnmsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnot.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnsra.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vnsrl.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vrem.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vremu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vrsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsbc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vse8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsetvl.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsetvlmax.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsext_vf2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsext_vf4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsext_vf8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsll.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsm.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsoxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsra.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsrl.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsse8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei16.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei32.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei64.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vsuxei8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwadd.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwaddu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmacc.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmaccsu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmaccu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmaccus.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmul.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmulsu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwmulu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwsub.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vwsubu.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vxor.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vzext_vf2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vzext_vf4.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/api/vzext_vf8.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-1.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup-2.s create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/multiple_rgroup_run-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup_run-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/template-1.h create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/v-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/v-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl128b-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl128b-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64x_zvl128b-2.c -- 2.36.3