From: Jeff Law Date: Tue, 21 Mar 2023 20:02:33 +0000 (-0600) Subject: Use word mode. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42a2a810cd72195c8ece37405336bb5e3795de85;p=thirdparty%2Fgcc.git Use word mode. Add assert for constant argument Adjust some comments in crc expander --- diff --git a/gcc/config/riscv/bitmanip.md b/gcc/config/riscv/bitmanip.md index 974bf0b62708..bcd5302f740d 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 crc4 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 3df854a6541d..3541bf79eb6b 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 8f306c30fdd0..249980f3fe98 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 #include diff --git a/gcc/testsuite/gcc.dg/crc-10.c b/gcc/testsuite/gcc.dg/crc-10.c index 7a20c1f4b06e..0c6c1b585b01 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 diff --git a/gcc/testsuite/gcc.dg/crc-11.c b/gcc/testsuite/gcc.dg/crc-11.c index 8f11345dc956..f107de78659d 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 09de56b53ab4..62190e42621d 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 diff --git a/gcc/testsuite/gcc.dg/crc-13.c b/gcc/testsuite/gcc.dg/crc-13.c index 0c7fce66dc21..003930b27e43 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 diff --git a/gcc/testsuite/gcc.dg/crc-14.c b/gcc/testsuite/gcc.dg/crc-14.c index 7dd23995abf6..a2966132ab8c 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 diff --git a/gcc/testsuite/gcc.dg/crc-15.c b/gcc/testsuite/gcc.dg/crc-15.c index 742922884dc3..2ba2d3b34982 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 diff --git a/gcc/testsuite/gcc.dg/crc-16.c b/gcc/testsuite/gcc.dg/crc-16.c index 5e1a166550f6..6c927d9b680f 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 diff --git a/gcc/testsuite/gcc.dg/crc-17.c b/gcc/testsuite/gcc.dg/crc-17.c index fd439a798ffe..03590bdc263b 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 //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 c3cf813fb786..7221f9f35b4d 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 diff --git a/gcc/testsuite/gcc.dg/crc-19.c b/gcc/testsuite/gcc.dg/crc-19.c index a25fb278654c..bc61c9e6ed6a 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 //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 f70f787532f7..fcce5b4fd90d 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 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 14e2b658852d..6f05434996ff 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 82e1b53541e9..7db15ec82a82 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 diff --git a/gcc/testsuite/gcc.dg/crc-21.c b/gcc/testsuite/gcc.dg/crc-21.c index c7b496273c9c..b61b2fc9ab78 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 80a9ebab1162..91597cacae94 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 diff --git a/gcc/testsuite/gcc.dg/crc-23.c b/gcc/testsuite/gcc.dg/crc-23.c index 1d1fd2134a74..cd7c0d6a8425 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 diff --git a/gcc/testsuite/gcc.dg/crc-24.c b/gcc/testsuite/gcc.dg/crc-24.c index 6eee036fd578..aae78e0f200f 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 #include diff --git a/gcc/testsuite/gcc.dg/crc-25.c b/gcc/testsuite/gcc.dg/crc-25.c index f48714b0dc07..d9e3e99073e4 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 @@ -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 9883190c886c..5db6a3691c5b 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 @@ -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 087e0faeb226..f8864ebb520e 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 5f6b354ddd86..817c10fcf77a 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 diff --git a/gcc/testsuite/gcc.dg/crc-5.c b/gcc/testsuite/gcc.dg/crc-5.c index 69dd676732bc..90c396ce8b6d 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 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 7e64f7ae7b46..af4c4ab85c37 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 diff --git a/gcc/testsuite/gcc.dg/crc-7.c b/gcc/testsuite/gcc.dg/crc-7.c index 4c5814584aaa..ebfbc35ab1a4 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 diff --git a/gcc/testsuite/gcc.dg/crc-8.c b/gcc/testsuite/gcc.dg/crc-8.c index 7bdb8b9a7d67..15c4986aef20 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 diff --git a/gcc/testsuite/gcc.dg/crc-9.c b/gcc/testsuite/gcc.dg/crc-9.c index bac21505b664..1087d4f7caa3 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 diff --git a/gcc/testsuite/gcc.dg/crc-callerid.c b/gcc/testsuite/gcc.dg/crc-callerid.c index 4137d79b288f..ec11db104050 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 a1ba5f8b319b..d711fd1429d4 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 3b959fe0d137..153f721bc20e 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 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 e501c9f8c391..620c4c1df9bf 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 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 df8258e2bcdf..97d935dead02 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 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 d2efacb66928..d45cb07c0f35 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 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"} } */