public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-8460] RISC-V/testsuite: Add RTL pr105314.c testcase variants
@ 2024-01-26 21:48 Maciej W. Rozycki
  0 siblings, 0 replies; only message in thread
From: Maciej W. Rozycki @ 2024-01-26 21:48 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:d4e15084e2155c7e7c5e872b3a88e64df27aa4e6

commit r14-8460-gd4e15084e2155c7e7c5e872b3a88e64df27aa4e6
Author: Maciej W. Rozycki <macro@embecosm.com>
Date:   Fri Jan 26 21:47:40 2024 +0000

    RISC-V/testsuite: Add RTL pr105314.c testcase variants
    
    Add a pair of RTL tests, for RV64 and RV32 respectively, corresponding
    to the existing pr105314.c test.  They have been produced from RTL code
    as at the entry of the "ce1" pass for pr105314.c compiled at -O3.
    
            gcc/testsuite/
            * gcc.target/riscv/pr105314-rtl.c: New file.
            * gcc.target/riscv/pr105314-rtl32.c: New file.

Diff:
---
 gcc/testsuite/gcc.target/riscv/pr105314-rtl.c   | 78 +++++++++++++++++++++++++
 gcc/testsuite/gcc.target/riscv/pr105314-rtl32.c | 78 +++++++++++++++++++++++++
 2 files changed, 156 insertions(+)

diff --git a/gcc/testsuite/gcc.target/riscv/pr105314-rtl.c b/gcc/testsuite/gcc.target/riscv/pr105314-rtl.c
new file mode 100644
index 000000000000..693291f4dbd2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr105314-rtl.c
@@ -0,0 +1,78 @@
+/* PR rtl-optimization/105314 */
+/* { dg-do compile } */
+/* { dg-require-effective-target rv64 } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-Os" "-Oz" "-flto" } } */
+/* { dg-options "-fdump-rtl-ce1" } */
+
+long __RTL (startwith ("ce1"))
+foo (long a, long b, long c)
+{
+(function "foo"
+  (param "a"
+    (DECL_RTL (reg/v:DI <1> [ a ]))
+    (DECL_RTL_INCOMING (reg:DI a0 [ a ])))
+  (param "b"
+    (DECL_RTL (reg/v:DI <2> [ b ]))
+    (DECL_RTL_INCOMING (reg:DI a1 [ b ])))
+  (param "c"
+    (DECL_RTL (reg/v:DI <3> [ c ]))
+    (DECL_RTL_INCOMING (reg:DI a2 [ c ])))
+  (insn-chain
+    (block 2
+      (edge-from entry (flags "FALLTHRU"))
+      (cnote 8 [bb 2] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 2 (set (reg/v:DI <1> [ a ])
+                    (reg:DI a0 [ a ])) "pr105314.c":8:1
+               (expr_list:REG_DEAD (reg:DI a0 [ a ])))
+      (cinsn 4 (set (reg/v:DI <3> [ c ])
+                    (reg:DI a2 [ c ])) "pr105314.c":8:1
+               (expr_list:REG_DEAD (reg:DI a2 [ c ])))
+      (cnote 5 NOTE_INSN_FUNCTION_BEG)
+      (cjump_insn 10 (set (pc)
+                          (if_then_else (ne (reg/v:DI <3> [ c ])
+                                            (const_int 0))
+                                        (label_ref:DI 23)
+                                        (pc))) "pr105314.c":9:6
+                     (expr_list:REG_DEAD (reg/v:DI <3> [ c ])
+                                         (int_list:REG_BR_PROB 536870916)))
+      (edge-to 4)
+      (edge-to 3 (flags "FALLTHRU"))
+    ) ;; block 2
+    (block 3
+      (edge-from 2 (flags "FALLTHRU"))
+      (cnote 11 [bb 3] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 6 (set (reg/v:DI <0> [ <retval> ])
+                    (reg/v:DI <1> [ a ])) "pr105314.c":9:6
+               (expr_list:REG_DEAD (reg/v:DI <1> [ a ])))
+      (edge-to 5 (flags "FALLTHRU"))
+    ) ;; block 3
+    (block 4
+      (edge-from 2)
+      (clabel 23 3)
+      (cnote 22 [bb 4] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 7 (set (reg/v:DI <0> [ <retval> ])
+                    (const_int 0)) "pr105314.c":10:7)
+      (edge-to 5 (flags "FALLTHRU"))
+    ) ;; block 4
+    (block 5
+      (edge-from 4 (flags "FALLTHRU"))
+      (edge-from 3 (flags "FALLTHRU"))
+      (clabel 16 1)
+      (cnote 19 [bb 5] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 17 (set (reg/i:DI a0)
+                     (reg/v:DI <0> [ <retval> ])) "pr105314.c":12:1
+                (expr_list:REG_DEAD (reg/v:DI <0> [ <retval> ])))
+      (cinsn 18 (use (reg/i:DI a0)) "pr105314.c":12:1)
+      (edge-to exit (flags "FALLTHRU"))
+    ) ;; block 5
+  ) ;; insn-chain
+  (crtl
+    (return_rtx
+      (reg/i:DI a0)
+    ) ;; return_rtx
+  ) ;; crtl
+) ;; function "foo"
+}
+
+/* { dg-final { scan-rtl-dump-times "if-conversion succeeded through noce_try_store_flag_mask" 1 "ce1" } } */
+/* { dg-final { scan-assembler-not "\\s(?:beq|bne)\\s" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/pr105314-rtl32.c b/gcc/testsuite/gcc.target/riscv/pr105314-rtl32.c
new file mode 100644
index 000000000000..9f9600f7679f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr105314-rtl32.c
@@ -0,0 +1,78 @@
+/* PR rtl-optimization/105314 */
+/* { dg-do compile } */
+/* { dg-require-effective-target rv32 } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" "-Os" "-Oz" "-flto" } } */
+/* { dg-options "-fdump-rtl-ce1" } */
+
+long __RTL (startwith ("ce1"))
+foo (long a, long b, long c)
+{
+(function "foo"
+  (param "a"
+    (DECL_RTL (reg/v:SI <1> [ a ]))
+    (DECL_RTL_INCOMING (reg:SI a0 [ a ])))
+  (param "b"
+    (DECL_RTL (reg/v:SI <2> [ b ]))
+    (DECL_RTL_INCOMING (reg:SI a1 [ b ])))
+  (param "c"
+    (DECL_RTL (reg/v:SI <3> [ c ]))
+    (DECL_RTL_INCOMING (reg:SI a2 [ c ])))
+  (insn-chain
+    (block 2
+      (edge-from entry (flags "FALLTHRU"))
+      (cnote 8 [bb 2] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 2 (set (reg/v:SI <1> [ a ])
+                    (reg:SI a0 [ a ])) "pr105314.c":8:1
+               (expr_list:REG_DEAD (reg:SI a0 [ a ])))
+      (cinsn 4 (set (reg/v:SI <3> [ c ])
+                    (reg:SI a2 [ c ])) "pr105314.c":8:1
+               (expr_list:REG_DEAD (reg:SI a2 [ c ])))
+      (cnote 5 NOTE_INSN_FUNCTION_BEG)
+      (cjump_insn 10 (set (pc)
+                          (if_then_else (ne (reg/v:SI <3> [ c ])
+                                            (const_int 0))
+                                        (label_ref:SI 23)
+                                        (pc))) "pr105314.c":9:6
+                     (expr_list:REG_DEAD (reg/v:SI <3> [ c ])
+                                         (int_list:REG_BR_PROB 536870916)))
+      (edge-to 4)
+      (edge-to 3 (flags "FALLTHRU"))
+    ) ;; block 2
+    (block 3
+      (edge-from 2 (flags "FALLTHRU"))
+      (cnote 11 [bb 3] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 6 (set (reg/v:SI <0> [ <retval> ])
+                    (reg/v:SI <1> [ a ])) "pr105314.c":9:6
+               (expr_list:REG_DEAD (reg/v:SI <1> [ a ])))
+      (edge-to 5 (flags "FALLTHRU"))
+    ) ;; block 3
+    (block 4
+      (edge-from 2)
+      (clabel 23 3)
+      (cnote 22 [bb 4] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 7 (set (reg/v:SI <0> [ <retval> ])
+                    (const_int 0)) "pr105314.c":10:7)
+      (edge-to 5 (flags "FALLTHRU"))
+    ) ;; block 4
+    (block 5
+      (edge-from 4 (flags "FALLTHRU"))
+      (edge-from 3 (flags "FALLTHRU"))
+      (clabel 16 1)
+      (cnote 19 [bb 5] NOTE_INSN_BASIC_BLOCK)
+      (cinsn 17 (set (reg/i:SI a0)
+                     (reg/v:SI <0> [ <retval> ])) "pr105314.c":12:1
+                (expr_list:REG_DEAD (reg/v:SI <0> [ <retval> ])))
+      (cinsn 18 (use (reg/i:SI a0)) "pr105314.c":12:1)
+      (edge-to exit (flags "FALLTHRU"))
+    ) ;; block 5
+  ) ;; insn-chain
+  (crtl
+    (return_rtx
+      (reg/i:SI a0)
+    ) ;; return_rtx
+  ) ;; crtl
+) ;; function "foo"
+}
+
+/* { dg-final { scan-rtl-dump-times "if-conversion succeeded through noce_try_store_flag_mask" 1 "ce1" } } */
+/* { dg-final { scan-assembler-not "\\s(?:beq|bne)\\s" } } */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-01-26 21:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-26 21:48 [gcc r14-8460] RISC-V/testsuite: Add RTL pr105314.c testcase variants Maciej W. Rozycki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).