new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
new file mode 100644
@@ -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"} } */
@@ -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()
{