回复: Re: [PATCH v8 2/2] RISC-V: Add crypto vector api-testing cases.
Committed, thanks Juzhe. 发件人: 钟居哲 发送时间: 2024-01-09 07:02 收件人: wangfeng; gcc-patches 抄送: kito.cheng; Jeff Law; wangfeng 主题: Re: [PATCH v8 2/2] RISC-V: Add crypto vector api-testing cases. LGTM. juzhe.zh...@rivai.ai From: Feng Wang Date: 2024-01-08 17:12 To: gcc-patches CC: kito.cheng; jeffreyalaw; juzhe.zhong; Feng Wang Subject: [PATCH v8 2/2] RISC-V: Add crypto vector api-testing cases. Patch v8: Resubmit after fix the rtl-checking issue. Passed all the riscv regression test. Patch v7: Add newline at the end of file. Patch v6: Move intrinsic tests into rvv/base. Patch v5: Rebase Patch v4: Add some RV32 vx constraint testcase. Patch v3: Refine crypto vector api-testing cases. Patch v2: Update march info according to the change of riscv-common.c This patch add crypto vector api-testing cases based on https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/eopc/vector-crypto/auto-generated/vector-crypto gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/zvbb-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c: New test. * gcc.target/riscv/rvv/base/zvbc-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c: New test. * gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c: New test. * gcc.target/riscv/rvv/base/zvkg-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvkned-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvknha-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvknhb-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvksed-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvksh-intrinsic.c: New test. * gcc.target/riscv/zvkb.c: New test. --- .../riscv/rvv/base/zvbb-intrinsic.c | 179 ++ .../riscv/rvv/base/zvbb_vandn_vx_constraint.c | 15 ++ .../riscv/rvv/base/zvbc-intrinsic.c | 62 ++ .../riscv/rvv/base/zvbc_vx_constraint-1.c | 14 ++ .../riscv/rvv/base/zvbc_vx_constraint-2.c | 14 ++ .../riscv/rvv/base/zvkg-intrinsic.c | 24 +++ .../riscv/rvv/base/zvkned-intrinsic.c | 104 ++ .../riscv/rvv/base/zvknha-intrinsic.c | 33 .../riscv/rvv/base/zvknhb-intrinsic.c | 33 .../riscv/rvv/base/zvksed-intrinsic.c | 33 .../riscv/rvv/base/zvksh-intrinsic.c | 24 +++ gcc/testsuite/gcc.target/riscv/zvkb.c | 13 ++ 12 files changed, 548 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvkg-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvkned-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvknha-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvksed-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvksh-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/zvkb.c diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c new file mode 100644 index 000..b7e25bfe819 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c @@ -0,0 +1,179 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc_zvbb_zve64x -mabi=lp64d -Wno-psabi" } */ +#include "riscv_vector.h" + +vuint8mf8_t test_vandn_vv_u8mf8(vuint8mf8_t vs2, vuint8mf8_t vs1, size_t vl) { + return __riscv_vandn_vv_u8mf8(vs2, vs1, vl); +} + +vuint32m1_t test_vandn_vx_u32m1(vuint32m1_t vs2, uint32_t rs1, size_t vl) { + return __riscv_vandn_vx_u32m1(vs2, rs1, vl); +} + +vuint32m2_t test_vandn_vv_u32m2_m(vbool16_t mask, vuint32m2_t vs2, vuint32m2_t vs1, size_t vl) { + return __riscv_vandn_vv_u32m2_m(mask, vs2, vs1, vl); +} + +vuint16mf2_t test_vandn_vx_u16mf2_m(vbool32_t mask, vuint16mf2_t vs2, uint16_t rs1, size_t vl) { + return __riscv_vandn_vx_u16mf2_m(mask, vs2, rs1, vl); +} + +vuint32m4_t test_vandn_vv_u32m4_tumu(vbool8_t mask, vuint32m4_t maskedoff, vuint32m4_t vs2, vuint32m4_t vs1, size_t vl) { + return __riscv_vandn_vv_u32m4_tumu(mask, maskedoff, vs2, vs1, vl); +} + +vuint64m4_t test_vandn_vx_u64m4_tumu(vbool16_t mask, vuint64m4_t maskedoff, vuint64m4_t vs2, uint64_t rs1, size_t vl) { + return __riscv_vandn_vx_u64m4_tumu(mask, maskedoff, vs2, rs1, vl); +} + +vuint8m8_t test_vbrev_v_u8m8(vuint8m8_t vs2, size_t vl) { + return __riscv_vbrev_v_u8m8(vs2, vl); +} + +vuint16m1_t test_vbrev_v_u16m1_m(vbool16_t mask, vuint16m1_t vs2, size_t vl) { + return __riscv_vbrev_v_u16m1_m(mask, vs2, vl); +} + +vuint32m4_t test_vbrev_v_u32m4_tumu(vbool8_t mask, v
Re: [PATCH v8 2/2] RISC-V: Add crypto vector api-testing cases.
LGTM. juzhe.zh...@rivai.ai From: Feng Wang Date: 2024-01-08 17:12 To: gcc-patches CC: kito.cheng; jeffreyalaw; juzhe.zhong; Feng Wang Subject: [PATCH v8 2/2] RISC-V: Add crypto vector api-testing cases. Patch v8: Resubmit after fix the rtl-checking issue. Passed all the riscv regression test. Patch v7: Add newline at the end of file. Patch v6: Move intrinsic tests into rvv/base. Patch v5: Rebase Patch v4: Add some RV32 vx constraint testcase. Patch v3: Refine crypto vector api-testing cases. Patch v2: Update march info according to the change of riscv-common.c This patch add crypto vector api-testing cases based on https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/eopc/vector-crypto/auto-generated/vector-crypto gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/zvbb-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c: New test. * gcc.target/riscv/rvv/base/zvbc-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c: New test. * gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c: New test. * gcc.target/riscv/rvv/base/zvkg-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvkned-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvknha-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvknhb-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvksed-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvksh-intrinsic.c: New test. * gcc.target/riscv/zvkb.c: New test. --- .../riscv/rvv/base/zvbb-intrinsic.c | 179 ++ .../riscv/rvv/base/zvbb_vandn_vx_constraint.c | 15 ++ .../riscv/rvv/base/zvbc-intrinsic.c | 62 ++ .../riscv/rvv/base/zvbc_vx_constraint-1.c | 14 ++ .../riscv/rvv/base/zvbc_vx_constraint-2.c | 14 ++ .../riscv/rvv/base/zvkg-intrinsic.c | 24 +++ .../riscv/rvv/base/zvkned-intrinsic.c | 104 ++ .../riscv/rvv/base/zvknha-intrinsic.c | 33 .../riscv/rvv/base/zvknhb-intrinsic.c | 33 .../riscv/rvv/base/zvksed-intrinsic.c | 33 .../riscv/rvv/base/zvksh-intrinsic.c | 24 +++ gcc/testsuite/gcc.target/riscv/zvkb.c | 13 ++ 12 files changed, 548 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvkg-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvkned-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvknha-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvksed-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvksh-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/zvkb.c diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c new file mode 100644 index 000..b7e25bfe819 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c @@ -0,0 +1,179 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc_zvbb_zve64x -mabi=lp64d -Wno-psabi" } */ +#include "riscv_vector.h" + +vuint8mf8_t test_vandn_vv_u8mf8(vuint8mf8_t vs2, vuint8mf8_t vs1, size_t vl) { + return __riscv_vandn_vv_u8mf8(vs2, vs1, vl); +} + +vuint32m1_t test_vandn_vx_u32m1(vuint32m1_t vs2, uint32_t rs1, size_t vl) { + return __riscv_vandn_vx_u32m1(vs2, rs1, vl); +} + +vuint32m2_t test_vandn_vv_u32m2_m(vbool16_t mask, vuint32m2_t vs2, vuint32m2_t vs1, size_t vl) { + return __riscv_vandn_vv_u32m2_m(mask, vs2, vs1, vl); +} + +vuint16mf2_t test_vandn_vx_u16mf2_m(vbool32_t mask, vuint16mf2_t vs2, uint16_t rs1, size_t vl) { + return __riscv_vandn_vx_u16mf2_m(mask, vs2, rs1, vl); +} + +vuint32m4_t test_vandn_vv_u32m4_tumu(vbool8_t mask, vuint32m4_t maskedoff, vuint32m4_t vs2, vuint32m4_t vs1, size_t vl) { + return __riscv_vandn_vv_u32m4_tumu(mask, maskedoff, vs2, vs1, vl); +} + +vuint64m4_t test_vandn_vx_u64m4_tumu(vbool16_t mask, vuint64m4_t maskedoff, vuint64m4_t vs2, uint64_t rs1, size_t vl) { + return __riscv_vandn_vx_u64m4_tumu(mask, maskedoff, vs2, rs1, vl); +} + +vuint8m8_t test_vbrev_v_u8m8(vuint8m8_t vs2, size_t vl) { + return __riscv_vbrev_v_u8m8(vs2, vl); +} + +vuint16m1_t test_vbrev_v_u16m1_m(vbool16_t mask, vuint16m1_t vs2, size_t vl) { + return __riscv_vbrev_v_u16m1_m(mask, vs2, vl); +} + +vuint32m4_t test_vbrev_v_u32m4_tumu(vbool8_t mask, vuint32m4_t maskedoff, vuint32m4_t vs2, size_t vl) { + return __riscv_vbrev_v_u32m4_tumu(mask, maskedoff, vs2, vl); +} + +vuint16mf4_t test_vbrev8_v_u16mf4(vuint16mf4_t vs2, si
[PATCH v8 2/2] RISC-V: Add crypto vector api-testing cases.
Patch v8: Resubmit after fix the rtl-checking issue. Passed all the riscv regression test. Patch v7: Add newline at the end of file. Patch v6: Move intrinsic tests into rvv/base. Patch v5: Rebase Patch v4: Add some RV32 vx constraint testcase. Patch v3: Refine crypto vector api-testing cases. Patch v2: Update march info according to the change of riscv-common.c This patch add crypto vector api-testing cases based on https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/eopc/vector-crypto/auto-generated/vector-crypto gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/zvbb-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c: New test. * gcc.target/riscv/rvv/base/zvbc-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c: New test. * gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c: New test. * gcc.target/riscv/rvv/base/zvkg-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvkned-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvknha-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvknhb-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvksed-intrinsic.c: New test. * gcc.target/riscv/rvv/base/zvksh-intrinsic.c: New test. * gcc.target/riscv/zvkb.c: New test. --- .../riscv/rvv/base/zvbb-intrinsic.c | 179 ++ .../riscv/rvv/base/zvbb_vandn_vx_constraint.c | 15 ++ .../riscv/rvv/base/zvbc-intrinsic.c | 62 ++ .../riscv/rvv/base/zvbc_vx_constraint-1.c | 14 ++ .../riscv/rvv/base/zvbc_vx_constraint-2.c | 14 ++ .../riscv/rvv/base/zvkg-intrinsic.c | 24 +++ .../riscv/rvv/base/zvkned-intrinsic.c | 104 ++ .../riscv/rvv/base/zvknha-intrinsic.c | 33 .../riscv/rvv/base/zvknhb-intrinsic.c | 33 .../riscv/rvv/base/zvksed-intrinsic.c | 33 .../riscv/rvv/base/zvksh-intrinsic.c | 24 +++ gcc/testsuite/gcc.target/riscv/zvkb.c | 13 ++ 12 files changed, 548 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbb_vandn_vx_constraint.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvbc_vx_constraint-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvkg-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvkned-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvknha-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvknhb-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvksed-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/zvksh-intrinsic.c create mode 100644 gcc/testsuite/gcc.target/riscv/zvkb.c diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c new file mode 100644 index 000..b7e25bfe819 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/base/zvbb-intrinsic.c @@ -0,0 +1,179 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc_zvbb_zve64x -mabi=lp64d -Wno-psabi" } */ +#include "riscv_vector.h" + +vuint8mf8_t test_vandn_vv_u8mf8(vuint8mf8_t vs2, vuint8mf8_t vs1, size_t vl) { + return __riscv_vandn_vv_u8mf8(vs2, vs1, vl); +} + +vuint32m1_t test_vandn_vx_u32m1(vuint32m1_t vs2, uint32_t rs1, size_t vl) { + return __riscv_vandn_vx_u32m1(vs2, rs1, vl); +} + +vuint32m2_t test_vandn_vv_u32m2_m(vbool16_t mask, vuint32m2_t vs2, vuint32m2_t vs1, size_t vl) { + return __riscv_vandn_vv_u32m2_m(mask, vs2, vs1, vl); +} + +vuint16mf2_t test_vandn_vx_u16mf2_m(vbool32_t mask, vuint16mf2_t vs2, uint16_t rs1, size_t vl) { + return __riscv_vandn_vx_u16mf2_m(mask, vs2, rs1, vl); +} + +vuint32m4_t test_vandn_vv_u32m4_tumu(vbool8_t mask, vuint32m4_t maskedoff, vuint32m4_t vs2, vuint32m4_t vs1, size_t vl) { + return __riscv_vandn_vv_u32m4_tumu(mask, maskedoff, vs2, vs1, vl); +} + +vuint64m4_t test_vandn_vx_u64m4_tumu(vbool16_t mask, vuint64m4_t maskedoff, vuint64m4_t vs2, uint64_t rs1, size_t vl) { + return __riscv_vandn_vx_u64m4_tumu(mask, maskedoff, vs2, rs1, vl); +} + +vuint8m8_t test_vbrev_v_u8m8(vuint8m8_t vs2, size_t vl) { + return __riscv_vbrev_v_u8m8(vs2, vl); +} + +vuint16m1_t test_vbrev_v_u16m1_m(vbool16_t mask, vuint16m1_t vs2, size_t vl) { + return __riscv_vbrev_v_u16m1_m(mask, vs2, vl); +} + +vuint32m4_t test_vbrev_v_u32m4_tumu(vbool8_t mask, vuint32m4_t maskedoff, vuint32m4_t vs2, size_t vl) { + return __riscv_vbrev_v_u32m4_tumu(mask, maskedoff, vs2, vl); +} + +vuint16mf4_t test_vbrev8_v_u16mf4(vuint16mf4_t vs2, size_t vl) { + return __riscv_vbrev8_v_u16mf4(vs2, vl); +} + +vuint32m1_t test_vbrev8_v_u32m1_m(vbool32_t mask, vuint32m1_t v