]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
s390: Add testcase for just fixed PR118362
authorJakub Jelinek <jakub@redhat.com>
Thu, 9 Jan 2025 21:04:58 +0000 (22:04 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 9 Jan 2025 21:04:58 +0000 (22:04 +0100)
On Thu, Jan 09, 2025 at 01:29:27PM +0100, Stefan Schulze Frielinghaus wrote:
> Optimization s390_constant_via_vgbm_p() should only apply to constant
> vectors which can be expressed by the hardware, i.e., which have a size
> of at most 16-bytes, similar as it is done for s390_constant_via_vgm_p()
> and s390_constant_via_vrepi_p().
>
> gcc/ChangeLog:
>
>       PR target/118362
>       * config/s390/s390.cc (s390_constant_via_vgbm_p): Allow at most
>       16-byte vectors.
> ---
>  Bootstrap and regtest are still running.  If both are successful, I
>  will push this one promptly.

This was committed without a testcase, which IMHO shouldn't hurt.

2025-01-09  Jakub Jelinek  <jakub@redhat.com>

PR target/118362
* gcc.c-torture/compile/pr118362.c: New test.
* gcc.target/s390/pr118362.c: New test.

gcc/testsuite/gcc.c-torture/compile/pr118362.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/pr118362.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.c-torture/compile/pr118362.c b/gcc/testsuite/gcc.c-torture/compile/pr118362.c
new file mode 100644 (file)
index 0000000..b01c46a
--- /dev/null
@@ -0,0 +1,19 @@
+/* PR target/118362 */
+
+int a, b, c[18];
+
+void
+foo (void)
+{
+  for (int i = 0; i < 8; i++)
+    if (b)
+      {
+       c[i * 2 + 1] = a;
+       c[i * 2 + 2] = 200;
+      }
+    else
+      {
+       c[i * 2 + 1] = 1000000;
+       c[i * 2 + 2] = 200;
+      }
+}
diff --git a/gcc/testsuite/gcc.target/s390/pr118362.c b/gcc/testsuite/gcc.target/s390/pr118362.c
new file mode 100644 (file)
index 0000000..d2fdacb
--- /dev/null
@@ -0,0 +1,5 @@
+/* PR target/118362 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=z14" } */
+
+#include "../../gcc.c-torture/compile/pr118362.c"