aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <jlaw@ventanamicro>2023-03-21 14:02:33 -0600
committerJeff Law <jlaw@ventanamicro>2023-03-21 17:40:11 -0600
commit42a2a810cd72195c8ece37405336bb5e3795de85 (patch)
tree02e80dd52d3f075955915b0918b64052ff58e97d
parentea6aa4d94659e28881465532ca3b0d5a67bb166f (diff)
downloadgcc-42a2a810cd72195c8ece37405336bb5e3795de85.zip
gcc-42a2a810cd72195c8ece37405336bb5e3795de85.tar.gz
gcc-42a2a810cd72195c8ece37405336bb5e3795de85.tar.bz2
Use word mode.
Add assert for constant argument Adjust some comments in crc expander
-rw-r--r--gcc/config/riscv/bitmanip.md33
-rw-r--r--gcc/internal-fn.cc1
-rw-r--r--gcc/testsuite/gcc.dg/crc-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-10.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-11.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-12.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-13.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-14.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-15.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-16.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-17.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-18.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-19.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-2-diff-size.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-20.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-21.c4
-rw-r--r--gcc/testsuite/gcc.dg/crc-22.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-23.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-24.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-25.c4
-rw-r--r--gcc/testsuite/gcc.dg/crc-26.c4
-rw-r--r--gcc/testsuite/gcc.dg/crc-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-5.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-6.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-7.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-8.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-9.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-callerid.c4
-rw-r--r--gcc/testsuite/gcc.dg/crc-cc1541.c4
-rw-r--r--gcc/testsuite/gcc.dg/crc-crc-reverse.c4
-rw-r--r--gcc/testsuite/gcc.dg/crc-crc.c4
-rw-r--r--gcc/testsuite/gcc.dg/crc-if-in-if.c2
-rw-r--r--gcc/testsuite/gcc.dg/crc-misc.c4
35 files changed, 63 insertions, 53 deletions
diff --git a/gcc/config/riscv/bitmanip.md b/gcc/config/riscv/bitmanip.md
index 974bf0b..bcd5302 100644
--- a/gcc/config/riscv/bitmanip.md
+++ b/gcc/config/riscv/bitmanip.md
@@ -682,10 +682,13 @@
"clmulr\t%0,%1,%2"
[(set_attr "type" "bitmanip")])
+;; This probably should end up as crc<mode>4 and the :DI should
+;; be :X
(define_expand "crcqihi4"
-[(match_operand:HI 1)
- (match_operand:QI 2)
- (match_operand:HI 3)]
+[(match_operand:DI 0)
+ (match_operand:DI 1)
+ (match_operand:DI 2)
+ (match_operand:DI 3)]
""
{
if (TARGET_ZBC)
@@ -695,15 +698,21 @@
rtx a1 = operands[2];
unsigned HOST_WIDE_INT q
= gf2n_poly_long_div_quotient (UINTVAL (operands[3]));
- rtx t0 = gen_rtx_CONST (SImode, GEN_INT (q));
- rtx t1 = gen_rtx_CONST (SImode, operands[3]);
- a0 = force_reg (SImode, gen_rtx_XOR (SImode, a0, a1));
- a0 = force_reg (SImode, gen_rtx_CLMUL (SImode, a0, t0));
- a0 = force_reg (SImode, gen_rtx_ASHIFT (SImode, a0, GEN_INT (16)));
- a0 = force_reg (SImode, gen_rtx_CLMUL (SImode, a0, t1));
- a0 = force_reg (SImode, gen_rtx_LSHIFTRT (SImode, a0, GEN_INT (24)));
- a0 = force_reg (SImode, gen_rtx_ASHIFT (SImode, a0, GEN_INT (24)));
- rtx tgt = simplify_gen_subreg (SImode, operands[0], HImode, 0);
+ rtx q_reg = force_reg (word_mode, GEN_INT (q));
+ rtx t1 = force_reg (word_mode, operands[3]);
+ a0 = force_reg (word_mode, gen_rtx_XOR (word_mode, a0, a1));
+ a0 = force_reg (word_mode, gen_rtx_CLMUL (word_mode, a0, q_reg));
+ a0 = force_reg (word_mode, gen_rtx_ASHIFT (word_mode, a0, GEN_INT (16)));
+ a0 = force_reg (word_mode, gen_rtx_CLMUL (word_mode, a0, t1));
+ a0 = force_reg (word_mode, gen_rtx_LSHIFTRT (word_mode, a0, GEN_INT (24)));
+ a0 = force_reg (word_mode, gen_rtx_ASHIFT (word_mode, a0, GEN_INT (24)));
+
+ /* A0 is word mode. So we can just copy it into OPERANDS[0] by
+ wrapping OPERANDS[0] with a suitable subreg. Ideally we'll
+ fix the rest of the type issues with this expander and this
+ can be removed. */
+ rtx tgt = simplify_gen_subreg (word_mode, operands[0],
+ GET_MODE (operands[0]), 0);
emit_move_insn (tgt, a0);
}
else
diff --git a/gcc/internal-fn.cc b/gcc/internal-fn.cc
index 3df854a..3541bf7 100644
--- a/gcc/internal-fn.cc
+++ b/gcc/internal-fn.cc
@@ -3730,6 +3730,7 @@ expand_crc_optab_fn (internal_fn, gcall *stmt, convert_optab optab)
rtx dest = expand_expr (lhs, NULL_RTX, SImode, EXPAND_WRITE);
rtx op1 = expand_normal (rhs1);
rtx op2 = expand_normal (rhs2);
+ gcc_assert (TREE_CODE (rhs3) == INTEGER_CST);
rtx op3 = gen_rtx_CONST_INT (TYPE_MODE (result_type),
TREE_INT_CST_LOW (rhs3));
diff --git a/gcc/testsuite/gcc.dg/crc-1.c b/gcc/testsuite/gcc.dg/crc-1.c
index 8f306c3..249980f 100644
--- a/gcc/testsuite/gcc.dg/crc-1.c
+++ b/gcc/testsuite/gcc.dg/crc-1.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -fdisable-tree-phiopt2 -fdisable-tree-phiopt3 -march=rv64gc_zbc" } */
#include <stdio.h>
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-10.c b/gcc/testsuite/gcc.dg/crc-10.c
index 7a20c1f..0c6c1b5 100644
--- a/gcc/testsuite/gcc.dg/crc-10.c
+++ b/gcc/testsuite/gcc.dg/crc-10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-11.c b/gcc/testsuite/gcc.dg/crc-11.c
index 8f11345..f107de7 100644
--- a/gcc/testsuite/gcc.dg/crc-11.c
+++ b/gcc/testsuite/gcc.dg/crc-11.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
typedef unsigned short ee_u16;
typedef unsigned char ee_u8;
diff --git a/gcc/testsuite/gcc.dg/crc-12.c b/gcc/testsuite/gcc.dg/crc-12.c
index 09de56b..62190e4 100644
--- a/gcc/testsuite/gcc.dg/crc-12.c
+++ b/gcc/testsuite/gcc.dg/crc-12.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-13.c b/gcc/testsuite/gcc.dg/crc-13.c
index 0c7fce6..003930b 100644
--- a/gcc/testsuite/gcc.dg/crc-13.c
+++ b/gcc/testsuite/gcc.dg/crc-13.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-14.c b/gcc/testsuite/gcc.dg/crc-14.c
index 7dd2399..a296613 100644
--- a/gcc/testsuite/gcc.dg/crc-14.c
+++ b/gcc/testsuite/gcc.dg/crc-14.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-15.c b/gcc/testsuite/gcc.dg/crc-15.c
index 7429228..2ba2d3b 100644
--- a/gcc/testsuite/gcc.dg/crc-15.c
+++ b/gcc/testsuite/gcc.dg/crc-15.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/crc-16.c b/gcc/testsuite/gcc.dg/crc-16.c
index 5e1a166..6c927d9 100644
--- a/gcc/testsuite/gcc.dg/crc-16.c
+++ b/gcc/testsuite/gcc.dg/crc-16.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-17.c b/gcc/testsuite/gcc.dg/crc-17.c
index fd439a7..03590bd 100644
--- a/gcc/testsuite/gcc.dg/crc-17.c
+++ b/gcc/testsuite/gcc.dg/crc-17.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
//in one case is called shift left, in another shift right
diff --git a/gcc/testsuite/gcc.dg/crc-18.c b/gcc/testsuite/gcc.dg/crc-18.c
index c3cf813..7221f9f 100644
--- a/gcc/testsuite/gcc.dg/crc-18.c
+++ b/gcc/testsuite/gcc.dg/crc-18.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-19.c b/gcc/testsuite/gcc.dg/crc-19.c
index a25fb27..bc61c9e 100644
--- a/gcc/testsuite/gcc.dg/crc-19.c
+++ b/gcc/testsuite/gcc.dg/crc-19.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
//no conditional xor
diff --git a/gcc/testsuite/gcc.dg/crc-2-diff-size.c b/gcc/testsuite/gcc.dg/crc-2-diff-size.c
index f70f787..fcce5b4 100644
--- a/gcc/testsuite/gcc.dg/crc-2-diff-size.c
+++ b/gcc/testsuite/gcc.dg/crc-2-diff-size.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdio.h>
unsigned short crc16(unsigned char newByte, unsigned short crcValue) {
unsigned char i;
diff --git a/gcc/testsuite/gcc.dg/crc-2.c b/gcc/testsuite/gcc.dg/crc-2.c
index 14e2b65..6f05434 100644
--- a/gcc/testsuite/gcc.dg/crc-2.c
+++ b/gcc/testsuite/gcc.dg/crc-2.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#define CRC16_CCITT 0x102
#define POLYNOM CRC16_CCITT
diff --git a/gcc/testsuite/gcc.dg/crc-20.c b/gcc/testsuite/gcc.dg/crc-20.c
index 82e1b53..7db15ec 100644
--- a/gcc/testsuite/gcc.dg/crc-20.c
+++ b/gcc/testsuite/gcc.dg/crc-20.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-21.c b/gcc/testsuite/gcc.dg/crc-21.c
index c7b4962..b61b2fc9 100644
--- a/gcc/testsuite/gcc.dg/crc-21.c
+++ b/gcc/testsuite/gcc.dg/crc-21.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
typedef unsigned short ee_u16;
typedef unsigned char ee_u8;
@@ -22,4 +22,4 @@ ee_u16 not_crc(ee_u8 data, ee_u16 crc) {
return crc;
}
-/* { dg-final { scan-tree-dump-times "not_crc function maybe calculates CRC" 0 "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump-times "not_crc function maybe calculates CRC" 0 "crc"} } */
diff --git a/gcc/testsuite/gcc.dg/crc-22.c b/gcc/testsuite/gcc.dg/crc-22.c
index 80a9eba..91597ca 100644
--- a/gcc/testsuite/gcc.dg/crc-22.c
+++ b/gcc/testsuite/gcc.dg/crc-22.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-23.c b/gcc/testsuite/gcc.dg/crc-23.c
index 1d1fd21..cd7c0d6 100644
--- a/gcc/testsuite/gcc.dg/crc-23.c
+++ b/gcc/testsuite/gcc.dg/crc-23.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-24.c b/gcc/testsuite/gcc.dg/crc-24.c
index 6eee036..aae78e0 100644
--- a/gcc/testsuite/gcc.dg/crc-24.c
+++ b/gcc/testsuite/gcc.dg/crc-24.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc -fdisable-tree-phiopt2 -fdisable-tree-phiopt3" } */
+/* { dg-options "-O2 -fdump-tree-crc -fdisable-tree-phiopt2 -fdisable-tree-phiopt3 -march=rv64gc_zbc" } */
#include <stdio.h>
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-25.c b/gcc/testsuite/gcc.dg/crc-25.c
index f48714b..d9e3e99 100644
--- a/gcc/testsuite/gcc.dg/crc-25.c
+++ b/gcc/testsuite/gcc.dg/crc-25.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
@@ -30,4 +30,4 @@ crcSlow(uint8_t message) {
/* { dg-final { scan-tree-dump "crcSlow function calculates CRC." "crc"} } */
/* { dg-final { scan-tree-dump "Return value is \\\{\\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[6\\\] \\\^ 1\\\), \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[5\\\] \\\^ 1\\\), \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[4\\\], \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[3\\\] \\\^ 1\\\), \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[2\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[1\\\], \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[0\\\] \\\^ 1\\\), 0\\\}" "crc"} } */
/* { dg-final { scan-tree-dump "Return value is \\\{\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[6\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[5\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[4\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[3\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[2\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[1\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[0\\\], 0\\\}" "crc"} } */
-/* { dg-final { scan-tree-dump "Polynomial's value is \\\{1, 1, 0, 1, 0, 0, 1, 0\\\}" "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump "Polynomial's value is \\\{1, 1, 0, 1, 0, 0, 1, 0\\\}" "crc"} } */
diff --git a/gcc/testsuite/gcc.dg/crc-26.c b/gcc/testsuite/gcc.dg/crc-26.c
index 9883190..5db6a36 100644
--- a/gcc/testsuite/gcc.dg/crc-26.c
+++ b/gcc/testsuite/gcc.dg/crc-26.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdio.h>
@@ -26,4 +26,4 @@ uint8_t gencrc (uint8_t *data)
/* { dg-final { scan-tree-dump "Bit forward" "crc"} } */
/* { dg-final { scan-tree-dump "Executing \[a-zA-Z_\]\[a-zA-Z0-9_\]* = \[a-zA-Z_\]\[a-zA-Z0-9_\]* \\\^ \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?;" "crc" } } */
/* { dg-final { scan-tree-dump "Executing \[a-zA-Z_\]\[a-zA-Z0-9_\]* = \[a-zA-Z_\]\[a-zA-Z0-9_\]* \(<<|>>\) \[0-9]+;" "crc" } } */
-/* { dg-final { scan-tree-dump "gencrc function calculates CRC." "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump "gencrc function calculates CRC." "crc"} } */
diff --git a/gcc/testsuite/gcc.dg/crc-3.c b/gcc/testsuite/gcc.dg/crc-3.c
index 087e0fa..f8864ebb 100644
--- a/gcc/testsuite/gcc.dg/crc-3.c
+++ b/gcc/testsuite/gcc.dg/crc-3.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
unsigned short crc16(char *data_p, unsigned short length) {
unsigned char i;
diff --git a/gcc/testsuite/gcc.dg/crc-4.c b/gcc/testsuite/gcc.dg/crc-4.c
index 5f6b354..817c10f 100644
--- a/gcc/testsuite/gcc.dg/crc-4.c
+++ b/gcc/testsuite/gcc.dg/crc-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-5.c b/gcc/testsuite/gcc.dg/crc-5.c
index 69dd676..90c396c 100644
--- a/gcc/testsuite/gcc.dg/crc-5.c
+++ b/gcc/testsuite/gcc.dg/crc-5.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdio.h>
typedef unsigned short ee_u16;
typedef unsigned char ee_u8;
diff --git a/gcc/testsuite/gcc.dg/crc-6.c b/gcc/testsuite/gcc.dg/crc-6.c
index 7e64f7a..af4c4ab 100644
--- a/gcc/testsuite/gcc.dg/crc-6.c
+++ b/gcc/testsuite/gcc.dg/crc-6.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-7.c b/gcc/testsuite/gcc.dg/crc-7.c
index 4c58145..ebfbc35 100644
--- a/gcc/testsuite/gcc.dg/crc-7.c
+++ b/gcc/testsuite/gcc.dg/crc-7.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-8.c b/gcc/testsuite/gcc.dg/crc-8.c
index 7bdb8b9..15c4986 100644
--- a/gcc/testsuite/gcc.dg/crc-8.c
+++ b/gcc/testsuite/gcc.dg/crc-8.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
diff --git a/gcc/testsuite/gcc.dg/crc-9.c b/gcc/testsuite/gcc.dg/crc-9.c
index bac2150..1087d4f 100644
--- a/gcc/testsuite/gcc.dg/crc-9.c
+++ b/gcc/testsuite/gcc.dg/crc-9.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/crc-callerid.c b/gcc/testsuite/gcc.dg/crc-callerid.c
index 4137d79..ec11db1 100644
--- a/gcc/testsuite/gcc.dg/crc-callerid.c
+++ b/gcc/testsuite/gcc.dg/crc-callerid.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
unsigned short calc_crc(unsigned short crc, unsigned char data)
{
unsigned int i, j, org, dst;
@@ -32,4 +32,4 @@ unsigned short calc_crc(unsigned short crc, unsigned char data)
/* { dg-final { scan-tree-dump "Return value is \\\{\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[14\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[13\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[12\\\], \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[11\\\] \\\^ 1\\\), \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[10\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[9\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[8\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[7\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[6\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[5\\\], \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[4\\\] \\\^ 1\\\), \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[3\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[2\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[1\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[0\\\], 1\\\}" "crc"} } */
/* { dg-final { scan-tree-dump "Return value is \\\{\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[14\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[13\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[12\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[11\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[10\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[9\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[8\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[7\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[6\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[5\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[4\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[3\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[2\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[1\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[0\\\], 0\\\}" "crc" } } */
/* { dg-final { scan-tree-dump "Return value is \\\{\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[14\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[13\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[12\\\], \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[11\\\] \\\^ 1\\\), \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[10\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[9\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[8\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[7\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[6\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[5\\\], \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[4\\\] \\\^ 1\\\), \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[3\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[2\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[1\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[0\\\], 1\\\}" "crc"} } */
-/* { dg-final { scan-tree-dump-times "Polynomial's value is \\\{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1\\\}" 1 "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump-times "Polynomial's value is \\\{0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1\\\}" 1 "crc"} } */
diff --git a/gcc/testsuite/gcc.dg/crc-cc1541.c b/gcc/testsuite/gcc.dg/crc-cc1541.c
index a1ba5f8..d711fd1 100644
--- a/gcc/testsuite/gcc.dg/crc-cc1541.c
+++ b/gcc/testsuite/gcc.dg/crc-cc1541.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
unsigned char
crc8(unsigned char value)
{
@@ -18,4 +18,4 @@ crc8(unsigned char value)
/* { dg-final { scan-tree-dump "Executing \[a-zA-Z_\]\[a-zA-Z0-9_\\\.\]* = \[a-zA-Z_\]\[a-zA-Z0-9_\]* \(<<|>>\) \[0-9]+;" "crc" } } */
/* { dg-final { scan-tree-dump "Return value is \\\{\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[6\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[5\\\], \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[4\\\] \\\^ 1\\\), \\\(\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[3\\\] \\\^ 1\\\), \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[2\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[1\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[0\\\], 1\\\}" "crc"} } */
/* { dg-final { scan-tree-dump "Return value is \\\{\[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[6\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[5\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[4\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[3\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[2\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[1\\\], \[a-zA-Z0-9_\]+\(\\\(\[a-zA-Z\]\\\)\)?\\\[0\\\], 0\\\}" "crc"} } */
-/* { dg-final { scan-tree-dump "Polynomial's value is \\\{0, 0, 1, 1, 0, 0, 0, 1\\\}" "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump "Polynomial's value is \\\{0, 0, 1, 1, 0, 0, 0, 1\\\}" "crc"} } */
diff --git a/gcc/testsuite/gcc.dg/crc-crc-reverse.c b/gcc/testsuite/gcc.dg/crc-crc-reverse.c
index 3b959fe..153f721 100644
--- a/gcc/testsuite/gcc.dg/crc-crc-reverse.c
+++ b/gcc/testsuite/gcc.dg/crc-crc-reverse.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
uint32_t crc24_reverse(uint32_t crc, const uint8_t *data, uint8_t len)
@@ -26,4 +26,4 @@
/* { dg-final { scan-tree-dump "crc24_reverse function maybe calculates CRC and returns it." "crc"} } */
/* { dg-final { scan-tree-dump "Return size is 32" "crc"} } */
/* { dg-final { scan-tree-dump "Loop iteration number is 7" "crc"} } */
-/* { dg-final { scan-tree-dump "Bit forward" "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump "Bit forward" "crc"} } */
diff --git a/gcc/testsuite/gcc.dg/crc-crc.c b/gcc/testsuite/gcc.dg/crc-crc.c
index e501c9f..620c4c1 100644
--- a/gcc/testsuite/gcc.dg/crc-crc.c
+++ b/gcc/testsuite/gcc.dg/crc-crc.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
uint32_t crc24_calculate(uint32_t preset, const uint8_t *data, uint8_t len)
@@ -28,4 +28,4 @@ uint32_t crc24_calculate(uint32_t preset, const uint8_t *data, uint8_t len)
/* { dg-final { scan-tree-dump "crc24_calculate function maybe calculates CRC and returns it." "crc"} } */
/* { dg-final { scan-tree-dump "Return size is 32" "crc"} } */
/* { dg-final { scan-tree-dump "Loop iteration number is 7" "crc"} } */
-/* { dg-final { scan-tree-dump "Bit reverse" "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump "Bit reverse" "crc"} } */
diff --git a/gcc/testsuite/gcc.dg/crc-if-in-if.c b/gcc/testsuite/gcc.dg/crc-if-in-if.c
index df8258e..97d935d 100644
--- a/gcc/testsuite/gcc.dg/crc-if-in-if.c
+++ b/gcc/testsuite/gcc.dg/crc-if-in-if.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc" } */
+/* { dg-options "-O2 -fdump-tree-crc -march=rv64gc_zbc" } */
#include <stdint.h>
typedef uint8_t byte;
byte Compute_CRC8_Simple_OneByte_ShiftReg (byte byteVal)
diff --git a/gcc/testsuite/gcc.dg/crc-misc.c b/gcc/testsuite/gcc.dg/crc-misc.c
index d2efacb..d45cb07 100644
--- a/gcc/testsuite/gcc.dg/crc-misc.c
+++ b/gcc/testsuite/gcc.dg/crc-misc.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-crc-details" } */
+/* { dg-options "-O2 -fdump-tree-crc-details -march=rv64gc_zbc" } */
#include <stdint.h>
uint32_t _crc32(uint32_t crc, uint32_t data) {
@@ -20,4 +20,4 @@ uint32_t _crc32(uint32_t crc, uint32_t data) {
/* { dg-final { scan-tree-dump "Return size is 32" "crc"} } */
/* { dg-final { scan-tree-dump "Loop iteration number is 31" "crc"} } */
/* { dg-final { scan-tree-dump "Bit forward" "crc"} } */
-/* { dg-final { scan-tree-dump "_crc32 function calculates CRC." "crc"} } */ \ No newline at end of file
+/* { dg-final { scan-tree-dump "_crc32 function calculates CRC." "crc"} } */