From: Dominik Vogt <vogt@linux.vnet.ibm.com>
To: gcc-patches@gcc.gnu.org
Cc: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Subject: Re: [PATCH] S/390: Fix warning in "*movstr" pattern.
Date: Thu, 03 Dec 2015 14:20:00 -0000 [thread overview]
Message-ID: <20151203142036.GA1452@linux.vnet.ibm.com> (raw)
In-Reply-To: <20151202100633.GA322@linux.vnet.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 129 bytes --]
Version 5 with two fixes to the test case. :-/ (ChangeLog is the
same.)
Ciao
Dominik ^_^ ^_^
--
Dominik Vogt
IBM Germany
[-- Attachment #2: 0001-v5-S-390-Fix-warning-in-movstr-pattern.patch --]
[-- Type: text/x-diff, Size: 4259 bytes --]
From 5965f62501b271285bacb90b11ef3f748338d1cf Mon Sep 17 00:00:00 2001
From: Dominik Vogt <vogt@linux.vnet.ibm.com>
Date: Tue, 3 Nov 2015 18:03:02 +0100
Subject: [PATCH] S/390: Fix warning in "*movstr" pattern.
---
gcc/config/s390/s390.md | 20 ++++++++++++++++---
gcc/testsuite/gcc.target/s390/md/movstr-1.c | 30 +++++++++++++++++++++++++++++
gcc/testsuite/gcc.target/s390/s390.exp | 25 +++++++++++++++++++-----
3 files changed, 67 insertions(+), 8 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/s390/md/movstr-1.c
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index e5db537..7eca315 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -2910,13 +2910,27 @@
;
(define_expand "movstr"
+ ;; The pattern is never generated.
+ [(match_operand 0 "" "")
+ (match_operand 1 "" "")
+ (match_operand 2 "" "")]
+ ""
+{
+ if (TARGET_64BIT)
+ emit_insn (gen_movstrdi (operands[0], operands[1], operands[2]));
+ else
+ emit_insn (gen_movstrsi (operands[0], operands[1], operands[2]));
+ DONE;
+})
+
+(define_expand "movstr<P:mode>"
[(set (reg:SI 0) (const_int 0))
(parallel
[(clobber (match_dup 3))
(set (match_operand:BLK 1 "memory_operand" "")
(match_operand:BLK 2 "memory_operand" ""))
- (set (match_operand 0 "register_operand" "")
- (unspec [(match_dup 1)
+ (set (match_operand:P 0 "register_operand" "")
+ (unspec:P [(match_dup 1)
(match_dup 2)
(reg:SI 0)] UNSPEC_MVST))
(clobber (reg:CC CC_REGNUM))])]
@@ -2937,7 +2951,7 @@
(set (mem:BLK (match_operand:P 1 "register_operand" "0"))
(mem:BLK (match_operand:P 3 "register_operand" "2")))
(set (match_operand:P 0 "register_operand" "=d")
- (unspec [(mem:BLK (match_dup 1))
+ (unspec:P [(mem:BLK (match_dup 1))
(mem:BLK (match_dup 3))
(reg:SI 0)] UNSPEC_MVST))
(clobber (reg:CC CC_REGNUM))]
diff --git a/gcc/testsuite/gcc.target/s390/md/movstr-1.c b/gcc/testsuite/gcc.target/s390/md/movstr-1.c
new file mode 100644
index 0000000..6ab0050
--- /dev/null
+++ b/gcc/testsuite/gcc.target/s390/md/movstr-1.c
@@ -0,0 +1,30 @@
+/* Machine description pattern tests. */
+
+/* { dg-do run } */
+/* { dg-options "-dP -save-temps" } */
+
+__attribute__ ((noinline))
+void test(char *dest, const char *src)
+{
+ __builtin_stpcpy (dest, src);
+}
+
+/* { dg-final { scan-assembler-times {{[*]movstr}} 1 } } */
+
+#include <string.h>
+#include <stdio.h>
+
+#define LEN 200
+char buf[LEN];
+
+int main(void)
+{
+ memset(buf, 0, LEN);
+ test(buf, "hello world!");
+ if (strcmp(buf, "hello world!") != 0)
+ {
+ fprintf(stderr, "error: test() failed\n");
+ return 1;
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/s390/s390.exp b/gcc/testsuite/gcc.target/s390/s390.exp
index 0b8f80ed..0d7a7eb 100644
--- a/gcc/testsuite/gcc.target/s390/s390.exp
+++ b/gcc/testsuite/gcc.target/s390/s390.exp
@@ -61,20 +61,35 @@ if ![info exists DEFAULT_CFLAGS] then {
# Initialize `dg'.
dg-init
-set hotpatch_tests $srcdir/$subdir/hotpatch-\[0-9\]*.c
+set md_tests $srcdir/$subdir/md/*.c
# Main loop.
dg-runtest [lsort [prune [glob -nocomplain $srcdir/$subdir/*.\[cS\]] \
- $hotpatch_tests]] "" $DEFAULT_CFLAGS
+ $md_tests]] "" $DEFAULT_CFLAGS
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*vector*/*.\[cS\]]] \
"" $DEFAULT_CFLAGS
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/md/*.\[cS\]]] \
+ "" $DEFAULT_CFLAGS
+
# Additional hotpatch torture tests.
torture-init
-set HOTPATCH_TEST_OPTS [list -Os -O0 -O1 -O2 -O3]
-set-torture-options $HOTPATCH_TEST_OPTS
-gcc-dg-runtest [lsort [glob -nocomplain $hotpatch_tests]] "" $DEFAULT_CFLAGS
+set-torture-options [list -Os -O0 -O1 -O2 -O3]
+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/hotpatch-\[0-9\]*.c]] \
+ "" $DEFAULT_CFLAGS
+torture-finish
+
+# Additional md torture tests.
+torture-init
+set MD_TEST_OPTS [list \
+ {-Os -march=z900} {-Os -march=z13} \
+ {-O0 -march=z900} {-O0 -march=z13} \
+ {-O1 -march=z900} {-O1 -march=z13} \
+ {-O2 -march=z900} {-O2 -march=z13} \
+ {-O3 -march=z900} {-O3 -march=z13}]
+set-torture-options $MD_TEST_OPTS
+gcc-dg-runtest [lsort [glob -nocomplain $md_tests]] "" $DEFAULT_CFLAGS
torture-finish
# All done.
--
2.3.0
next prev parent reply other threads:[~2015-12-03 14:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-03 17:17 Dominik Vogt
2015-11-03 17:47 ` Ulrich Weigand
2015-11-04 1:39 ` Dominik Vogt
2015-11-09 12:33 ` Andreas Krebbel
2015-11-30 14:48 ` Dominik Vogt
2015-12-02 8:59 ` Andreas Krebbel
2015-12-02 9:12 ` Dominik Vogt
2015-12-02 10:06 ` Dominik Vogt
2015-12-03 14:20 ` Dominik Vogt [this message]
2015-12-04 17:12 ` Dominik Vogt
2015-12-11 11:20 ` Andreas Krebbel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151203142036.GA1452@linux.vnet.ibm.com \
--to=vogt@linux.vnet.ibm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=krebbel@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).