https://gcc.gnu.org/g:3537aa694d7d817ac13c3c2908bda45adfb95511
commit r15-6046-g3537aa694d7d817ac13c3c2908bda45adfb95511 Author: Mariam Arutunian <mariamarutun...@gmail.com> Date: Mon Dec 9 07:29:36 2024 -0700 [committed] RISC-V testsuite changes to test clmul expansion of CRCs This testsuite only patch allows us to test code generation for CRC functions using clmul instructions. Conceptually it's trivial. We already have various execution tests in gcc.dg/torture. We just define a new set of dg directives and include the testcase in gcc.dg/torture. The only gotcha in here is the need to change target-supports.exp. It was passing the default set of arguments down to the check_runtime routine, so they always failed to assemble the testcase and we never claimed the ability to execute Zbc, Zbkb or Zbkc extension code. Again, NFC, just testsuite bits. Pushing to the trunk. Only aarch64 and x86 bits left ;-) gcc/testsuite * gcc.target/riscv/crc-1-zbc.c: New test. * gcc.target/riscv/crc-1-zbkc.c: Likewise. * gcc.target/riscv/crc-10-zbc.c: Likewise. * gcc.target/riscv/crc-10-zbkc.c: Likewise. * gcc.target/riscv/crc-12-zbc.c: Likewise. * gcc.target/riscv/crc-12-zbkc.c: Likewise. * gcc.target/riscv/crc-13-zbc.c: Likewise. * gcc.target/riscv/crc-13-zbkc.c: Likewise. * gcc.target/riscv/crc-14-zbc.c: Likewise. * gcc.target/riscv/crc-14-zbkc.c: Likewise. * gcc.target/riscv/crc-17-zbc.c: Likewise. * gcc.target/riscv/crc-17-zbkc.c: Likewise. * gcc.target/riscv/crc-18-zbc.c: Likewise. * gcc.target/riscv/crc-18-zbkc.c: Likewise. * gcc.target/riscv/crc-21-rv64-zbc.c: Likewise. * gcc.target/riscv/crc-21-rv64-zbkc.c: Likewise. * gcc.target/riscv/crc-22-zbc.c: Likewise. * gcc.target/riscv/crc-22-zbkc.c: Likewise. * gcc.target/riscv/crc-23-zbc.c: Likewise. * gcc.target/riscv/crc-23-zbkc.c: Likewise. * gcc.target/riscv/crc-4-zbc.c: Likewise. * gcc.target/riscv/crc-4-zbkb.c: Likewise. * gcc.target/riscv/crc-4-zbkc.c: Likewise. * gcc.target/riscv/crc-5-zbc.c: Likewise. * gcc.target/riscv/crc-5-zbkb.c: Likewise. * gcc.target/riscv/crc-5-zbkc.c: Likewise. * gcc.target/riscv/crc-6-zbc.c: Likewise. * gcc.target/riscv/crc-6-zbkc.c: Likewise. * gcc.target/riscv/crc-7-zbc.c: Likewise. * gcc.target/riscv/crc-7-zbkc.c: Likewise. * gcc.target/riscv/crc-8-zbc.c: Likewise. * gcc.target/riscv/crc-8-zbkc.c: Likewise. * gcc.target/riscv/crc-9-zbc.c: Likewise. * gcc.target/riscv/crc-9-zbkc.c: Likewise. * gcc.target/riscv/crc-CCIT-data16-zbc.c: Likewise. * gcc.target/riscv/crc-CCIT-data16-zbkc.c: Likewise. * gcc.target/riscv/crc-CCIT-data8-zbc.c: Likewise. * gcc.target/riscv/crc-CCIT-data8-zbkc.c: Likewise. * gcc.target/riscv/crc-coremark-16bitdata-zbc.c: Likewise. * gcc.target/riscv/crc-coremark-16bitdata-zbkc.c: Likewise. * lib/target-supports.exp (check_effective_target_riscv_zbc_ok): Set gcc_march before compiling test program. (check_effective_target_riscv_zbkc_ok): Likewise. (check_effective_target_riscv_zbkb_ok): Likewise. Co-authored-by: Jeff Law <j...@ventanamicro.com> Diff: --- gcc/testsuite/gcc.target/riscv/crc-1-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-1-zbkc.c | 11 +++++++++++ gcc/testsuite/gcc.target/riscv/crc-10-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-10-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-12-zbc.c | 11 +++++++++++ gcc/testsuite/gcc.target/riscv/crc-12-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-13-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-13-zbkc.c | 11 +++++++++++ gcc/testsuite/gcc.target/riscv/crc-14-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-14-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-17-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-17-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-18-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-18-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-22-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-22-zbkb.c | 9 +++++++++ gcc/testsuite/gcc.target/riscv/crc-22-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-23-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-23-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-4-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-4-zbkb.c | 9 +++++++++ gcc/testsuite/gcc.target/riscv/crc-4-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-5-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-5-zbkb.c | 9 +++++++++ gcc/testsuite/gcc.target/riscv/crc-5-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-6-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-6-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-7-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-7-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-8-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-8-zbkb.c | 9 +++++++++ gcc/testsuite/gcc.target/riscv/crc-8-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-9-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-9-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbkc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbc.c | 10 ++++++++++ gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbkc.c | 10 ++++++++++ gcc/testsuite/lib/target-supports.exp | 6 +++--- 43 files changed, 422 insertions(+), 3 deletions(-) diff --git a/gcc/testsuite/gcc.target/riscv/crc-1-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-1-zbc.c new file mode 100644 index 000000000000..aaeaa0dc6add --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-1-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-1.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-1-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-1-zbkc.c new file mode 100644 index 000000000000..3af336356a10 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-1-zbkc.c @@ -0,0 +1,11 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv32 } } } */ + +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-1.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-10-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-10-zbc.c new file mode 100644 index 000000000000..472d7beb5234 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-10-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-10.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-10-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-10-zbkc.c new file mode 100644 index 000000000000..88f1c0942e9d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-10-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-10.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-12-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-12-zbc.c new file mode 100644 index 000000000000..f1784eca065a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-12-zbc.c @@ -0,0 +1,11 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv32 } } } */ + +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-12.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-12-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-12-zbkc.c new file mode 100644 index 000000000000..91a2cf91c293 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-12-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-12.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-13-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-13-zbc.c new file mode 100644 index 000000000000..3c6138ca15f2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-13-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-13.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-13-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-13-zbkc.c new file mode 100644 index 000000000000..73a5b6a4c149 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-13-zbkc.c @@ -0,0 +1,11 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ + +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-13.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-14-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-14-zbc.c new file mode 100644 index 000000000000..486f3df8c8c5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-14-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-14.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-14-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-14-zbkc.c new file mode 100644 index 000000000000..9cccea74e3b2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-14-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-14.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-17-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-17-zbc.c new file mode 100644 index 000000000000..bc22039b984e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-17-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-17.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-17-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-17-zbkc.c new file mode 100644 index 000000000000..025abc1d93fa --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-17-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-17.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-18-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-18-zbc.c new file mode 100644 index 000000000000..ad7e66dd8c1d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-18-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-18.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-18-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-18-zbkc.c new file mode 100644 index 000000000000..2b01738d9b1b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-18-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-18.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbc.c new file mode 100644 index 000000000000..503b412f2e19 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target { riscv64*-*-* && riscv_zbc_ok } } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-21.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbkc.c new file mode 100644 index 000000000000..2bf0172a8377 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-21-rv64-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target { riscv64*-*-* && riscv_zbkc_ok } } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-21.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-22-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-22-zbc.c new file mode 100644 index 000000000000..005aa23e490a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-22-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-22.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-22-zbkb.c b/gcc/testsuite/gcc.target/riscv/crc-22-zbkb.c new file mode 100644 index 000000000000..74dd876f9378 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-22-zbkb.c @@ -0,0 +1,9 @@ +/* { dg-do run { target riscv_zbkb } } */ +/* { dg-options "-march=rv64gc_zbkb -fdump-tree-crc-details" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkb -fdump-tree-crc-details" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Os" "-Oz" "-Og" "-flto"} } */ + +#include "../../gcc.dg/torture/crc-22.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-22-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-22-zbkc.c new file mode 100644 index 000000000000..fef46182e3e5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-22-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-22.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-23-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-23-zbc.c new file mode 100644 index 000000000000..1e3a99e4c30b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-23-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-23.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-23-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-23-zbkc.c new file mode 100644 index 000000000000..a6537b0a6379 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-23-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-23.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-4-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-4-zbc.c new file mode 100644 index 000000000000..d4bc3d970fc7 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-4-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-4.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-4-zbkb.c b/gcc/testsuite/gcc.target/riscv/crc-4-zbkb.c new file mode 100644 index 000000000000..5a25fb45d4a1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-4-zbkb.c @@ -0,0 +1,9 @@ +/* { dg-do run { target riscv_zbkb } } */ +/* { dg-options "-march=rv64gc_zbkb -fdump-tree-crc-details" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkb -fdump-tree-crc-details" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Os" "-Oz" "-Og" "-flto"} } */ + +#include "../../gcc.dg/torture/crc-4.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-4-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-4-zbkc.c new file mode 100644 index 000000000000..e519ac5a4cb5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-4-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-4.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-5-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-5-zbc.c new file mode 100644 index 000000000000..927d8dd514ff --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-5-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-5.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-5-zbkb.c b/gcc/testsuite/gcc.target/riscv/crc-5-zbkb.c new file mode 100644 index 000000000000..9cc661aad9d6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-5-zbkb.c @@ -0,0 +1,9 @@ +/* { dg-do run { target riscv_zbkb } } */ +/* { dg-options "-march=rv64gc_zbkb -w -fdump-tree-crc-details" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkb -w -fdump-tree-crc-details" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Os" "-Oz" "-Og" "-flto"} } */ + +#include "../../gcc.dg/torture/crc-5.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-5-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-5-zbkc.c new file mode 100644 index 000000000000..d8acc06d99f5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-5-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-5.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-6-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-6-zbc.c new file mode 100644 index 000000000000..b01f67b34efe --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-6-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-6.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-6-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-6-zbkc.c new file mode 100644 index 000000000000..938163a16616 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-6-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-6.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-7-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-7-zbc.c new file mode 100644 index 000000000000..f01186d6bee1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-7-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-7.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-7-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-7-zbkc.c new file mode 100644 index 000000000000..114500b6e5e8 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-7-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-7.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-8-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-8-zbc.c new file mode 100644 index 000000000000..f77d9a7970fa --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-8-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-8.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-8-zbkb.c b/gcc/testsuite/gcc.target/riscv/crc-8-zbkb.c new file mode 100644 index 000000000000..a065fd2dab2c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-8-zbkb.c @@ -0,0 +1,9 @@ +/* { dg-do run { target riscv_zbkb } } */ +/* { dg-options "-march=rv64gc_zbkb -fdump-tree-crc-details" { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkb -fdump-tree-crc-details" { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Os" "-Oz" "-Og" "-flto"} } */ + +#include "../../gcc.dg/torture/crc-8.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-8-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-8-zbkc.c new file mode 100644 index 000000000000..bf12e0b724ac --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-8-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-8.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-9-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-9-zbc.c new file mode 100644 index 000000000000..6af04848bf66 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-9-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-9.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-9-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-9-zbkc.c new file mode 100644 index 000000000000..f965f54b72b6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-9-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv32gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-options "-march=rv64gc_zbkc -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-O3" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-9.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbc.c new file mode 100644 index 000000000000..ca27fda58694 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-CCIT-data16.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbkc.c new file mode 100644 index 000000000000..effd4ad18dac --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data16-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-CCIT-data16.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbc.c new file mode 100644 index 000000000000..4a83190e3523 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-CCIT-data8.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbkc.c new file mode 100644 index 000000000000..c4335e0e9a8f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-CCIT-data8-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-CCIT-data8.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbc.c b/gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbc.c new file mode 100644 index 000000000000..5000e1435012 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbc_ok } } */ +/* { dg-options "-march=rv64gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-coremark16-data16.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbkc.c b/gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbkc.c new file mode 100644 index 000000000000..0d6acfbd9828 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/crc-coremark-16bitdata-zbkc.c @@ -0,0 +1,10 @@ +/* { dg-do run { target riscv_zbkc_ok } } */ +/* { dg-options "-march=rv64gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv64 } } } */ +/* { dg-options "-march=rv32gc_zbkc -w -fdump-tree-crc -fdump-rtl-dfinish " { target { rv32 } } } */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */ + +#include "../../gcc.dg/torture/crc-coremark16-data16.c" + +/* { dg-final { scan-tree-dump "calculates CRC!" "crc"} } */ +/* { dg-final { scan-tree-dump-times "Couldn't generate faster CRC code." 0 "crc"} } */ +/* { dg-final { scan-rtl-dump "clmul" "dfinish"} } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index f2edbef92da3..ed2a597804a4 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2197,7 +2197,7 @@ proc check_effective_target_riscv_zbc_ok { } { # check if we can execute zbc insns with the given hardware or # simulator - set gcc_march [riscv_get_arch] + set gcc_march [regsub {[[:alnum:]]*} [riscv_get_arch] &zbc] if { [check_runtime ${gcc_march}_zbc_exec { int main() { @@ -2221,7 +2221,7 @@ proc check_effective_target_riscv_zbkb_ok { } { # check if we can execute zbkb insns with the given hardware or # simulator - set gcc_march [riscv_get_arch] + set gcc_march [regsub {[[:alnum:]]*} [riscv_get_arch] &zbkb] if { [check_runtime ${gcc_march}_zbkb_exec { int main() { @@ -2244,7 +2244,7 @@ proc check_effective_target_riscv_zbkc_ok { } { # check if we can execute zbkc insns with the given hardware or # simulator - set gcc_march [riscv_get_arch] + set gcc_march [regsub {[[:alnum:]]*} [riscv_get_arch] &zbkc] if { [check_runtime ${gcc_march}_zbkc_exec { int main() {