]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Use word mode.
authorJeff Law <jlaw@ventanamicro>
Tue, 21 Mar 2023 20:02:33 +0000 (14:02 -0600)
committerJeff Law <jlaw@ventanamicro>
Tue, 21 Mar 2023 23:40:11 +0000 (17:40 -0600)
Add assert for constant argument

Adjust some comments in crc expander

35 files changed:
gcc/config/riscv/bitmanip.md
gcc/internal-fn.cc
gcc/testsuite/gcc.dg/crc-1.c
gcc/testsuite/gcc.dg/crc-10.c
gcc/testsuite/gcc.dg/crc-11.c
gcc/testsuite/gcc.dg/crc-12.c
gcc/testsuite/gcc.dg/crc-13.c
gcc/testsuite/gcc.dg/crc-14.c
gcc/testsuite/gcc.dg/crc-15.c
gcc/testsuite/gcc.dg/crc-16.c
gcc/testsuite/gcc.dg/crc-17.c
gcc/testsuite/gcc.dg/crc-18.c
gcc/testsuite/gcc.dg/crc-19.c
gcc/testsuite/gcc.dg/crc-2-diff-size.c
gcc/testsuite/gcc.dg/crc-2.c
gcc/testsuite/gcc.dg/crc-20.c
gcc/testsuite/gcc.dg/crc-21.c
gcc/testsuite/gcc.dg/crc-22.c
gcc/testsuite/gcc.dg/crc-23.c
gcc/testsuite/gcc.dg/crc-24.c
gcc/testsuite/gcc.dg/crc-25.c
gcc/testsuite/gcc.dg/crc-26.c
gcc/testsuite/gcc.dg/crc-3.c
gcc/testsuite/gcc.dg/crc-4.c
gcc/testsuite/gcc.dg/crc-5.c
gcc/testsuite/gcc.dg/crc-6.c
gcc/testsuite/gcc.dg/crc-7.c
gcc/testsuite/gcc.dg/crc-8.c
gcc/testsuite/gcc.dg/crc-9.c
gcc/testsuite/gcc.dg/crc-callerid.c
gcc/testsuite/gcc.dg/crc-cc1541.c
gcc/testsuite/gcc.dg/crc-crc-reverse.c
gcc/testsuite/gcc.dg/crc-crc.c
gcc/testsuite/gcc.dg/crc-if-in-if.c
gcc/testsuite/gcc.dg/crc-misc.c

index 974bf0b62708270227bc7823a209e4b5577f31bf..bcd5302f740df4a2ffe495b7804043564d887922 100644 (file)
 "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)
       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
index 3df854a6541dac9ace5db5755da75eab2878dd7b..3541bf79eb6b54ef5f66556ec3674a522864c58f 100644 (file)
@@ -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));
 
index 8f306c30fdd084fcf7d4dde4a0b5c673d460b828..249980f3fe98d245e68a576e21af81e5f8495439 100644 (file)
@@ -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>
index 7a20c1f4b06ed989a42c40b1c3856009a677b313..0c6c1b585b01c5073f9c629d8e3e2cc49c97ae7f 100644 (file)
@@ -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>
 
index 8f11345dc956eb01d1a84a3b543b3a28e715c9f9..f107de78659d38701e01ef86163eb6314a68597c 100644 (file)
@@ -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;
index 09de56b53ab49065fdf7dc0c4d65276ffea675f2..62190e42621d9bddc4c835d4a6465d0b7f6d96c3 100644 (file)
@@ -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>
 
index 0c7fce66dc21ded264480896cd595ab37300968d..003930b27e43829b5441167c23e7164420536476 100644 (file)
@@ -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>
 
index 7dd23995abf6b1d4378fbb72231f8b7b36e4e471..a2966132ab8c63eded3109f0de2d21926ed4f7c4 100644 (file)
@@ -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>
 
index 742922884dc3e00976ecf4e5367b4e4ed4b9e8db..2ba2d3b34982c1ea02223b40e0285e12495fdf44 100644 (file)
@@ -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>
 
index 5e1a166550f68fb1e0dff7ba78a437d8c2af6187..6c927d9b680f4d9b708c1c5df5acdbff1904f843 100644 (file)
@@ -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>
 
index fd439a798ffe25b46ca130c0d1f8b00d34f70366..03590bdc263b61e811a46fd4071c6a42771332ef 100644 (file)
@@ -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
index c3cf813fb7861cc6784dd82217280163a3ad7e72..7221f9f35b4de875eb2cd1e07957a9943e66dfa3 100644 (file)
@@ -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>
 
index a25fb278654cbf954dc03d62f84b03b5f78c779a..bc61c9e6ed6a10b9f47acfee678de8a4c118cad9 100644 (file)
@@ -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
index f70f787532f73c6a0e8df15ae59ede80540f92af..fcce5b4fd90dfa41801499820efe0fb8bae5374e 100644 (file)
@@ -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;
index 14e2b658852d881f92b3fe229462bb2bdb2eca33..6f05434996ffaf7a6fb49c6f66c2e03b69403c64 100644 (file)
@@ -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
index 82e1b53541e9af1e49b3460d2385235e575d4c35..7db15ec82a82dcdd8d8874f74e8f28d06bb9e898 100644 (file)
@@ -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>
 
index c7b496273c9c253d7f8e36318a519171bd5ce127..b61b2fc9ab78247c97d6c90ccef1fd504ef5a885 100644 (file)
@@ -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"} } */
index 80a9ebab116263a609be34d3b8ab233711c137a7..91597cacae94eb0794ce2863ac687cc2b1a38fbe 100644 (file)
@@ -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>
 
index 1d1fd2134a74a0da29ed2ed619857f5f860a3b6a..cd7c0d6a84257b57e11f1fe207c16f031ec827ed 100644 (file)
@@ -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>
 
index 6eee036fd578706056af095f83530c3533f4337e..aae78e0f200f8da386f6b27c79baa000a6912436 100644 (file)
@@ -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>
index f48714b0dc077fdbe5fe0d322ebbc20c7641e66a..d9e3e99073e49f25cc819331abe20d21c6b08a7e 100644 (file)
@@ -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"} } */
index 9883190c886c03f695eed602082bc641bd64cb8c..5db6a3691c5bbdf869cf1330d086e504e331fddf 100644 (file)
@@ -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"} } */
index 087e0faeb226053c4afa25e5fd025546dab21683..f8864ebb520e944aaba8ddbfadd3b0e5baacf529 100644 (file)
@@ -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;
index 5f6b354ddd86e6f7e1e77a31efd16941f48b1e6a..817c10fcf77a6db70eb38cb5cfff89e8a35f57f0 100644 (file)
@@ -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>
 
index 69dd676732bc64b705aaf03f9b1f0e8dae4e6095..90c396ce8b6d0b4e79fc31cb5cd6ad4f8c3755a1 100644 (file)
@@ -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;
index 7e64f7ae7b462bc01ec36d6c5f246a5a29c5b000..af4c4ab85c3751425eb6e4ad3197f27a7b16eaa6 100644 (file)
@@ -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>
 
index 4c5814584aaadda790c6da2ba5ffef9b3ccf3396..ebfbc35ab1a41f608c6e7e075d792e7d2b8c0864 100644 (file)
@@ -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>
 
index 7bdb8b9a7d675b27a5dda4c6ea7b2f8a0aba5458..15c4986aef203b885ac1f7f572f07c7b6593a311 100644 (file)
@@ -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>
 
index bac21505b664f318921c2ac7651839cc9e740bf7..1087d4f7caa35c3eb0a7ec0049bcfcde5d93fe89 100644 (file)
@@ -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>
 
index 4137d79b288f52dbfd2353f2687ca3d4712e0bb2..ec11db1040509547058ef6f15f404770d0419838 100644 (file)
@@ -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"} } */
index a1ba5f8b319b704bec0b1778dabd48ed01f3b7bd..d711fd1429d41f1f44920fcd8b0264bfd003921a 100644 (file)
@@ -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"} } */
index 3b959fe0d137c85ff1b7253a342fab2dbf1b2af6..153f721bc20ee82e87729d9ab8916bc06bbb91ae 100644 (file)
@@ -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"} } */
index e501c9f8c3910c7c182c9fb97a72c3a349eab3f8..620c4c1df9bf237fae3e0d913eb44818759de153 100644 (file)
@@ -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"} } */
index df8258e2bcdf758ff17ba209bb25cb9ffdcb7b86..97d935dead028f012476a5c0e16e24822d8b99e7 100644 (file)
@@ -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)
index d2efacb669288c64383c640d664bbebef4bb92fc..d45cb07c0f3563aad0453015d47dd6f364a460b8 100644 (file)
@@ -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"} } */