diff options
author | Jeff Law <jlaw@ventanamicro> | 2023-03-21 14:02:33 -0600 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro> | 2023-03-21 17:40:11 -0600 |
commit | 42a2a810cd72195c8ece37405336bb5e3795de85 (patch) | |
tree | 02e80dd52d3f075955915b0918b64052ff58e97d | |
parent | ea6aa4d94659e28881465532ca3b0d5a67bb166f (diff) | |
download | gcc-42a2a810cd72195c8ece37405336bb5e3795de85.zip gcc-42a2a810cd72195c8ece37405336bb5e3795de85.tar.gz gcc-42a2a810cd72195c8ece37405336bb5e3795de85.tar.bz2 |
Use word mode.
Add assert for constant argument
Adjust some comments in crc expander
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"} } */ |